.\" Copyright 2024 Andrew V.Kosteltsev (kx@radix-linux.su)
.\"
.\"
.TH shifts\-n 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
.SH NAME
\fBishln\fP, \fBishrn\fP, \fBisaln\fP, \fBisarn\fP \- Logical and arithmetic shift operations by \fBn\fP bits
.SH SYNOPSIS
.nf
.B #include <libmpu.h>
.PP
.BI "void ishln( mpu_int *" c ", mpu_int *" a ", unsigned int " ns ", int " nb " );
.BI "void ishrn( mpu_int *" c ", mpu_int *" a ", unsigned int " ns ", int " nb " );
.BI "void isaln( mpu_int *" c ", mpu_int *" a ", unsigned int " ns ", int " nb " );
.BI "void isarn( mpu_int *" c ", mpu_int *" a ", unsigned int " ns ", int " nb " );
.fi
.SH DESCRIPTION
The action of these functions is similar to \fBishl\fP(), \fBishr\fP(), \fBisal\fP(), \fBisar\fP(),
except that they shift their operands by the number of bits specified by the \fBns\fP parameter.
The state of the carry flag \fBC\fP is determined by the last pushed outward bit.
.sp
.SH SEE ALSO
.BR iadd(3),
.BR isub(3),
.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
.BR isal(3),
.BR isar(3),
.BR irol(3),
.BR iror(3),
.BR ircl(3),
.BR ircr(3),
.BR iroln(3),
.BR irorn(3),
.BR ircln(3),
.BR ircrn(3),
.BR ineg(3),
.BR inot(3),
.BR iand(3),
.BR itest(3),
.BR icmp(3),
.BR ior(3),
.BR ixor(3),
.BR iinc(3),
.BR idec(3),
.BR ixchg(3),
.BR icpy(3),
.BR icvt(3),
.BR imul(3),
.BR ismul(3),
.BR idiv(3),
.BR isdiv(3),
.BR iatoi(3),
.BR iatoui(3),
.BR iitoa(3),
.BR iuitoa(3).