1ca800d6 (kx 2024-12-29 20:12:16 +0300 1) .\" Copyright 2024 Andrew V.Kosteltsev (kx@radix-linux.su)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 2) .\"
1ca800d6 (kx 2024-12-29 20:12:16 +0300 3) .\"
1ca800d6 (kx 2024-12-29 20:12:16 +0300 4) .TH circular\-shifts 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
1ca800d6 (kx 2024-12-29 20:12:16 +0300 5) .SH NAME
1ca800d6 (kx 2024-12-29 20:12:16 +0300 6) \fBirol\fP, \fBiror\fP, \fBircl\fP, \fBircr\fP \- операции циклического сдвига на один бит
1ca800d6 (kx 2024-12-29 20:12:16 +0300 7) .SH SYNOPSIS
1ca800d6 (kx 2024-12-29 20:12:16 +0300 8) .nf
1ca800d6 (kx 2024-12-29 20:12:16 +0300 9) .B #include <libmpu.h>
1ca800d6 (kx 2024-12-29 20:12:16 +0300 10) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 11) .BI "void irol( mpu_int *" c ", mpu_int *" a ", int " nb " );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 12) .BI "void iror( mpu_int *" c ", mpu_int *" a ", int " nb " );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 13) .BI "void ircl( mpu_int *" c ", mpu_int *" a ", int " nb " );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 14) .BI "void ircr( mpu_int *" c ", mpu_int *" a ", int " nb " );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 15) .fi
1ca800d6 (kx 2024-12-29 20:12:16 +0300 16) .SH DESCRIPTION
1ca800d6 (kx 2024-12-29 20:12:16 +0300 17) Для операций циклического сдвига на один бит входным операндом служит переменная размером
1ca800d6 (kx 2024-12-29 20:12:16 +0300 18) \fBnb\fP байт, находящаяся по адресу \fBa\fP, результат помещается в переменную того же размера,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 19) расположенную по адресу \fBc\fP. Пространства, занимаемые входной и выходной переменной в памяти
1ca800d6 (kx 2024-12-29 20:12:16 +0300 20) могут пересекаться, как частично, так и полностью, что не влияет на правильность получаемого
1ca800d6 (kx 2024-12-29 20:12:16 +0300 21) результата. Содержимое переменной, расположенной по адресу \fBa\fP останется неизменным,
7ee94ee9 (kx 2024-12-30 20:56:27 +0300 22) после выполнения операции, если занимаемое ею пространство не пересекается с пространством,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 23) занимаемым переменной \fBc\fP.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 24) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 25) При выполнениии операций циклического сдвига, флаг переноса \fBC\fP всегда содержит значение
1ca800d6 (kx 2024-12-29 20:12:16 +0300 26) последнего выдвинутого бита. Существуют следующие виды операций циклического сдвига:
1ca800d6 (kx 2024-12-29 20:12:16 +0300 27) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 28) .RS 3
1ca800d6 (kx 2024-12-29 20:12:16 +0300 29) ROL \- циклический сдвиг влево на один бит.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 30) .RE
1ca800d6 (kx 2024-12-29 20:12:16 +0300 31) .RS 3
1ca800d6 (kx 2024-12-29 20:12:16 +0300 32) ROR \- циклический сдвиг вправо на один бит.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 33) .RE
1ca800d6 (kx 2024-12-29 20:12:16 +0300 34) .RS 3
1ca800d6 (kx 2024-12-29 20:12:16 +0300 35) RCL \- циклический сдвиг влево на один бит с участием флага переноса.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 36) .RE
1ca800d6 (kx 2024-12-29 20:12:16 +0300 37) .RS 3
1ca800d6 (kx 2024-12-29 20:12:16 +0300 38) RCR \- циклический сдвиг вправо на один бит с участием флага переноса.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 39) .RE
1ca800d6 (kx 2024-12-29 20:12:16 +0300 40) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 41) Следующие таблицы иллюстрируют выполнение операций \fBirol\fP, \fBiror\fP.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 42) .nf
1ca800d6 (kx 2024-12-29 20:12:16 +0300 43) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 44) ┌────────────────┬───┬───────────────────┬────────────┐
1ca800d6 (kx 2024-12-29 20:12:16 +0300 45) │ ROL(<<): │ C │ значение операнда │ заполнение │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 46) ├────────────────┼───┼───────────────────┼────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 47) │ до операции │ │ 10110111 │ sign(1) │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 48) ├────────────────┼───┼───────────────────┼────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 49) │ после операции │ 1 │ 01101111 │ │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 50) └────────────────┴───┴───────────────────┴────────────┘
1ca800d6 (kx 2024-12-29 20:12:16 +0300 51)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 52) ┌────────────────┬────────────┬───────────────────┬───┐
1ca800d6 (kx 2024-12-29 20:12:16 +0300 53) │ ROR(>>): │ заполнение │ значение операнда │ C │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 54) ├────────────────┼────────────┼───────────────────┼───┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 55) │ до операции │ low bit(1) │ 10110111 │ │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 56) ├────────────────┼────────────┼───────────────────┼───┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 57) │ после операции │ │ 11011011 │ 1 │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 58) └────────────────┴────────────┴───────────────────┴───┘
1ca800d6 (kx 2024-12-29 20:12:16 +0300 59) .fi
1ca800d6 (kx 2024-12-29 20:12:16 +0300 60) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 61) Операции \fBirol\fP и \fBiror\fP (аналогично с командами сдвига \fBisal\fP, \fBisar\fP, \fBishl\fP,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 62) \fBishr\fP) действуют на флаг переполнения \fBO\fP контролируя изменение знака операнда. Так же
1ca800d6 (kx 2024-12-29 20:12:16 +0300 63) выставляются флаги четности \fBP\fP, знака \fBS\fP и нуля \fBZ\fP. Флаг переноса из младшей тетрады
1ca800d6 (kx 2024-12-29 20:12:16 +0300 64) \fBA\fP не определяется и просто сбрасывается в 0.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 65) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 66) В операциях \fBircl\fP и \fBircr\fP в сдвиге участвует флаг переноса \fBC\fP. Выдвигаемый из операнда
653f53cb (kx 2024-12-30 21:50:33 +0300 67) бит заносится во флаг переноса \fBC\fP после того, как предыдущее значение \fBC\fP поступит в
1ca800d6 (kx 2024-12-29 20:12:16 +0300 68) освободившуюся позицию.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 69) .nf
1ca800d6 (kx 2024-12-29 20:12:16 +0300 70) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 71) ┌────────────────┬───┬───────────────────┬────────────┐
1ca800d6 (kx 2024-12-29 20:12:16 +0300 72) │ RCL(<<): │ C │ значение операнда │ заполнение │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 73) ├────────────────┼───┼───────────────────┼────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 74) │ до операции │ 0 │ 10110111 │ C(0) │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 75) ├────────────────┼───┼───────────────────┼────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 76) │ после операции │ 1 │ 01101110 │ │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 77) └────────────────┴───┴───────────────────┴────────────┘
1ca800d6 (kx 2024-12-29 20:12:16 +0300 78)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 79) ┌────────────────┬────────────┬───────────────────┬───┐
1ca800d6 (kx 2024-12-29 20:12:16 +0300 80) │ RCR(>>): │ заполнение │ значение операнда │ C │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 81) ├────────────────┼────────────┼───────────────────┼───┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 82) │ до операции │ C(0) │ 10110111 │ 0 │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 83) ├────────────────┼────────────┼───────────────────┼───┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 84) │ после операции │ │ 01011011 │ 1 │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 85) └────────────────┴────────────┴───────────────────┴───┘
1ca800d6 (kx 2024-12-29 20:12:16 +0300 86) .fi
1ca800d6 (kx 2024-12-29 20:12:16 +0300 87) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 88) Операции \fBircl\fP, \fBircr\fP воздействуют на флаги переноса \fBC\fP и переполнения \fBO\fP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 89) аналогично всем предыдущим операциям. Флаг переноса из младшей тетрады \fBA\fP не определяется
1ca800d6 (kx 2024-12-29 20:12:16 +0300 90) и просто сбрасывается в 0.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 91) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 92) Выставление флагов четности \fBP\fP и нуля \fBZ\fP операциями \fBircl\fP, \fBircr\fP несколько
1ca800d6 (kx 2024-12-29 20:12:16 +0300 93) отличается от предыдущих типов операций. Это относится и к флагу знака \fBS\fP. Так как операции
1ca800d6 (kx 2024-12-29 20:12:16 +0300 94) \fBircl\fP, \fBircr\fP могут использоваться для сдвигов нескольких слов совместно с другими
1ca800d6 (kx 2024-12-29 20:12:16 +0300 95) командами сдвига и, как правило, завершают такие составные операции, хотелось бы, после их
653f53cb (kx 2024-12-30 21:50:33 +0300 96) завершения, иметь состояние флагов \fBP\fP и \fBZ\fP соответствующим не только последнему
1ca800d6 (kx 2024-12-29 20:12:16 +0300 97) сдвигаемому слову, а целиком всей сдвигаемой комбинации слов.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 98) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 99) Для этого операция \fBircr\fP выставляет свои флаги (\fBP\fP, \fBS\fP), а операция \fBircl\fP не
1ca800d6 (kx 2024-12-29 20:12:16 +0300 100) определяет свои флаги (\fBP\fP, \fBS\fP) и не изменяет их предыдущих значений. Флаг нуля \fBZ\fP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 101) обеими операциями (\fBircl\fP, \fBircr\fP) выставляется по \fBЛогическому И\fP (\fBAND\fP)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 102) с предыдущим значением флага \fBZ\fP, то есть:
1ca800d6 (kx 2024-12-29 20:12:16 +0300 103) .nf
1ca800d6 (kx 2024-12-29 20:12:16 +0300 104) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 105) ┌────────────────┬────────────────┬────────────────┐
1ca800d6 (kx 2024-12-29 20:12:16 +0300 106) │ │ Значение Z, │ │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 107) │ Предыдущее │ полученное │ Результирующее │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 108) │ значение Z │ в результате │ значение Z │
1ca800d6 (kx 2024-12-29 20:12:16 +0300 109) │ │ операции │ │
ebc15ef0 (kx 2024-12-29 21:18:26 +0300 110) ├────────────────┼────────────────┼────────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 111) │ 1 │ 0 │ 0 │
ebc15ef0 (kx 2024-12-29 21:18:26 +0300 112) ├────────────────┼────────────────┼────────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 113) │ 1 │ 1 │ 1 │
ebc15ef0 (kx 2024-12-29 21:18:26 +0300 114) ├────────────────┼────────────────┼────────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 115) │ 0 │ 0 │ 0 │
ebc15ef0 (kx 2024-12-29 21:18:26 +0300 116) ├────────────────┼────────────────┼────────────────┤
1ca800d6 (kx 2024-12-29 20:12:16 +0300 117) │ 0 │ 1 │ 0 │
ebc15ef0 (kx 2024-12-29 21:18:26 +0300 118) └────────────────┴────────────────┴────────────────┘
1ca800d6 (kx 2024-12-29 20:12:16 +0300 119)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 120) .fi
1ca800d6 (kx 2024-12-29 20:12:16 +0300 121) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 122) Таким образом, если все слова, участвующие в комбинации сдвигов, дали нулевой результат, то и флаг
1ca800d6 (kx 2024-12-29 20:12:16 +0300 123) \fBZ\fP останется в значении \fBИСТИНА\fP, иначе, если хотя\-бы одно слово дало ненулевой результат,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 124) флаг \fBZ\fP останется в состоянии \fBЛОЖЬ\fP.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 125) .SS Примеры операций:
1ca800d6 (kx 2024-12-29 20:12:16 +0300 126) \fBСдвиг пары слов вправо\fP:
1ca800d6 (kx 2024-12-29 20:12:16 +0300 127) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 128) \fBisar\fP(11111101), \fBircr\fP(10011010); после \fBisar\fP результат = 11111110,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 129) \fBC\fP=1, \fBO\fP=0, \fBP\fP=1, \fBZ\fP=0; после \fBircr\fP результат = 11001101,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 130) \fBC\fP=0, \fBO\fP=0, \fBP\fP=0, \fBZ\fP=0. Общий результат: 1111111011001101.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 131) Состояние флагов после операции \fBircr\fP гарантированно принадлежит ко всей
1ca800d6 (kx 2024-12-29 20:12:16 +0300 132) комбинации двух слов (размером по 8 бит каждое).
1ca800d6 (kx 2024-12-29 20:12:16 +0300 133) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 134) \fBСдвиг пары слов влево\fP:
1ca800d6 (kx 2024-12-29 20:12:16 +0300 135) .PP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 136) \fBircl\fP(00111000), isal(10111111); после \fBisal\fP результат = 01111110,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 137) \fBC\fP=1, \fBO\fP=1, \fBP\fP=1, \fBZ\fP=0; после \fBircl\fP результат = 01110001,
1ca800d6 (kx 2024-12-29 20:12:16 +0300 138) \fBC\fP=0, \fBO\fP=0, \fBP\fP=1, \fBZ\fP=0. Общий результат: 0111000101111110.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 139) Состояние флагов после операции \fBisal\fP гарантированно принадлежит ко всей
1ca800d6 (kx 2024-12-29 20:12:16 +0300 140) комбинации двух слов (размером по 8 бит каждое). Заметим, что флаг \fBP\fP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 141) выставлен операцией \fBisal\fP и не изменялся операцией \fBircl\fP, флаг
1ca800d6 (kx 2024-12-29 20:12:16 +0300 142) \fBZ\fP получен по \fBAND\fP между \fBZ\fP от \fBisal\fP и \fBZ\fP
1ca800d6 (kx 2024-12-29 20:12:16 +0300 143) от \fBircl\fP.
1ca800d6 (kx 2024-12-29 20:12:16 +0300 144) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 145) .SH EXAMPLES
1ca800d6 (kx 2024-12-29 20:12:16 +0300 146) .nf
1ca800d6 (kx 2024-12-29 20:12:16 +0300 147) .sp
1ca800d6 (kx 2024-12-29 20:12:16 +0300 148) #include <libmpu.h>
1ca800d6 (kx 2024-12-29 20:12:16 +0300 149) #include <stdio.h>
1ca800d6 (kx 2024-12-29 20:12:16 +0300 150)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 151) int main( void )
1ca800d6 (kx 2024-12-29 20:12:16 +0300 152) {
1ca800d6 (kx 2024-12-29 20:12:16 +0300 153) int rc = 0;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 154)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 155) __mpu_init();
1ca800d6 (kx 2024-12-29 20:12:16 +0300 156) __mpu_extra_warnings = 1;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 157)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 158) {
1ca800d6 (kx 2024-12-29 20:12:16 +0300 159) mpu_int8_t c, d, a, b;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 160) mpu_int16_t z;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 161) mpu_int *pz = NULL;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 162) __mpu_char8_t s[32];
1ca800d6 (kx 2024-12-29 20:12:16 +0300 163)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 164) pz = (mpu_int *)&z;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 165)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 166) #if ( MPU_BYTE_ORDER_BIG_ENDIAN == 1 )
1ca800d6 (kx 2024-12-29 20:12:16 +0300 167) ++pz;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 168) #endif
1ca800d6 (kx 2024-12-29 20:12:16 +0300 169)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 170) iatoi( b, "0b10111111", NB_I8 ); /* low part */
1ca800d6 (kx 2024-12-29 20:12:16 +0300 171) iatoi( a, "0b00111000", NB_I8 ); /* high part */
1ca800d6 (kx 2024-12-29 20:12:16 +0300 172)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 173) __mpu_clc(); /* clear Carry Flag */
1ca800d6 (kx 2024-12-29 20:12:16 +0300 174)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 175) isal( d, b, NB_I8 );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 176) ircl( c, a, NB_I8 );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 177)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 178) icpy( pz, d, NB_I8, NB_I8 ); /* low part of Z */
1ca800d6 (kx 2024-12-29 20:12:16 +0300 179) #if ( MPU_BYTE_ORDER_BIG_ENDIAN == 1 )
1ca800d6 (kx 2024-12-29 20:12:16 +0300 180) --pz;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 181) #else
1ca800d6 (kx 2024-12-29 20:12:16 +0300 182) ++pz;
1ca800d6 (kx 2024-12-29 20:12:16 +0300 183) #endif
1ca800d6 (kx 2024-12-29 20:12:16 +0300 184) icpy( pz, c, NB_I8, NB_I8 ); /* high part of Z */
1ca800d6 (kx 2024-12-29 20:12:16 +0300 185)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 186) iitoa( s, z, RADIX_BIN, UPPERCASE, NB_I16 ); /* convert Z value to ASCII string S */
e3f8685d (kx 2024-12-30 18:22:24 +0300 187) printf( "z = %s;\\n", s ); /* z = 0B0111000101111110; */
e3f8685d (kx 2024-12-30 18:22:24 +0300 188) printf( "carry = %d;\\n", __mpu_gtc() ); /* Carry Flag */
e3f8685d (kx 2024-12-30 18:22:24 +0300 189) printf( "overflow = %d;\\n", __mpu_gto() ); /* Overflow Flag */
1ca800d6 (kx 2024-12-29 20:12:16 +0300 190) }
1ca800d6 (kx 2024-12-29 20:12:16 +0300 191)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 192) __mpu_free_context();
1ca800d6 (kx 2024-12-29 20:12:16 +0300 193)
1ca800d6 (kx 2024-12-29 20:12:16 +0300 194) return( rc );
1ca800d6 (kx 2024-12-29 20:12:16 +0300 195) }
1ca800d6 (kx 2024-12-29 20:12:16 +0300 196) .fi
1ca800d6 (kx 2024-12-29 20:12:16 +0300 197) .SH SEE ALSO
1ca800d6 (kx 2024-12-29 20:12:16 +0300 198) .BR iadd(3),
1ca800d6 (kx 2024-12-29 20:12:16 +0300 199) .BR isub(3),
41c271da (kx 2025-01-05 15:42:39 +0300 200) .BR iadc(3),
1ca800d6 (kx 2024-12-29 20:12:16 +0300 201) .BR isbb(3),
1ca800d6 (kx 2024-12-29 20:12:16 +0300 202) .BR ishl(3),
1ca800d6 (kx 2024-12-29 20:12:16 +0300 203) .BR ishr(3),
1ca800d6 (kx 2024-12-29 20:12:16 +0300 204) .BR isal(3),
41c271da (kx 2025-01-05 15:42:39 +0300 205) .BR isar(3),
41c271da (kx 2025-01-05 15:42:39 +0300 206) .BR ishln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 207) .BR ishrn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 208) .BR isaln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 209) .BR isarn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 210) .BR iroln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 211) .BR irorn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 212) .BR ircln(3),
41c271da (kx 2025-01-05 15:42:39 +0300 213) .BR ircrn(3),
41c271da (kx 2025-01-05 15:42:39 +0300 214) .BR ineg(3),
41c271da (kx 2025-01-05 15:42:39 +0300 215) .BR inot(3),
41c271da (kx 2025-01-05 15:42:39 +0300 216) .BR iand(3),
41c271da (kx 2025-01-05 15:42:39 +0300 217) .BR itest(3),
41c271da (kx 2025-01-05 15:42:39 +0300 218) .BR icmp(3),
41c271da (kx 2025-01-05 15:42:39 +0300 219) .BR ior(3),
41c271da (kx 2025-01-05 15:42:39 +0300 220) .BR ixor(3),
41c271da (kx 2025-01-05 15:42:39 +0300 221) .BR iinc(3),
41c271da (kx 2025-01-05 15:42:39 +0300 222) .BR idec(3),
41c271da (kx 2025-01-05 15:42:39 +0300 223) .BR ixchg(3),
41c271da (kx 2025-01-05 15:42:39 +0300 224) .BR icpy(3),
41c271da (kx 2025-01-05 15:42:39 +0300 225) .BR icvt(3),
41c271da (kx 2025-01-05 15:42:39 +0300 226) .BR imul(3),
41c271da (kx 2025-01-05 15:42:39 +0300 227) .BR ismul(3),
41c271da (kx 2025-01-05 15:42:39 +0300 228) .BR idiv(3),
41c271da (kx 2025-01-05 15:42:39 +0300 229) .BR isdiv(3),
41c271da (kx 2025-01-05 15:42:39 +0300 230) .BR iatoi(3),
41c271da (kx 2025-01-05 15:42:39 +0300 231) .BR iatoui(3),
41c271da (kx 2025-01-05 15:42:39 +0300 232) .BR iitoa(3),
41c271da (kx 2025-01-05 15:42:39 +0300 233) .BR iuitoa(3).