Доклад: Логичекие команды
SHR Логический сдвиг вправо
Команда shr осуществляет сдвиг вправо всех битов операнда. Младший бит операнда поступает в флаг CF. Если команда записана в формате
shr операнд, 1
сдвиг осуществляется на 1 бит. В старший бит операнда загружается 0, а младший теряется. Если команда записана в формате
shr onepand, CL
сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда заполняются нулями, а младшие, пройдя через флаг CF, теряются (рис. 3).
Рис. 3. Действие команды shr.
В качестве операнда можно указывать РОН или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Команда воздействует на флаги CF, OF, PF, SF и ZF.
RCL Циклический сдвиг влево через бит переноса
Команда rсl осуществляет сдвиг влево всех битов операнда. Если команда записана в формате
rcl операнд, 1
сдвиг осуществляется на 1 бит. В младший бит операнда заносится значение флага CF; старший бит операнда загружается в CF. Если команда записана в формате
rcl операнд, CL
сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда поступают сначала в CF, а оттуда - в младшие биты операнда (рис. 4).
Рис. 4. Действие команды rcl.
В качестве операнда команды rcl можно указывать РОН или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Команда воздействует на флаги OF и CF.
RCR Циклический сдвиг вправо через бит переноса
Команда rсr осуществляет сдвиг вправо всех битов операнда. Если команда записана в формате
rcr операнд, 1
сдвиг осуществляется на 1 бит. В старший бит операнда заносится значение флага CF; младший бит операнда загружается в CF. Если команда записана в формате
rcr операнд, CL
сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов младшие биты операнда поступают сначала в CF, а оттуда - в старшие биты операнда (рис. 5).
Рис. 5. Действие команды rcl.
В качестве операнда можно указывать РОН или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Команда воздействует на флаги OF и CF.
ROL Циклический сдвиг влево
Команда rol осуществляет сдвиг влево всех битов операнда. Если команда записана в формате
rol операнд, 1
сдвиг осуществляется на 1 бит. Старший бит операнда загружается в его младший разряд и одновременно заносится в флаг CF (рис. 6). Если команда записана в формате
rol операнд, CL
сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда перемещаются в его младшие разряды. Последний перенесенный бит одновременно заносится в флаг CF.
Рис. 6. Действие команды rol.
В качестве операнда можно указывать РОН или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Команда воздействует на флаги OF и CF.
ROR Циклический сдвиг вправо