(三十)shl 和 shr指令(逻辑移位指令)--汇编笔记

汇编语言

Posted by YiMiTuMi on May 8, 2020

shl 和 shr指令(逻辑移位指令)

shl 和 shr使逻辑位移指令。

shl是逻辑左移指令,功能:

 1)将一个寄存器或内存单元中的数据向左移位;

 2)将最后移出的一位写入CF中;

 3)最低位用0补充。

指令:

mov al, 01001000b

shl al, 1

执行后(al)= 10010000b CF = 0。

如果移位大于1时,必须将移动位数放在cl中。

mov al, 01010001b

mov cl, 3

shl al, cl

执行后(al)= 10001000b,因为最后移出的一位是0,所以CF = 0。

将X逻辑左移一位,相当于执行 X = X * 2

shr是逻辑右移指令,它和shl所进行的操作刚好相反。

 1)将一个寄存器或内存单元中的数据向右移位。

 2)将最后一处的一位写入CF中;

 3)最高为用0补充。

指令:

mov al, 01010001b

shr al, 1

执行后 (al) = 00101000b CF = 1

如果移位大于1时,必须将移动位数放在cl中。

mov al, 01010001b

mov cl, 3

shr al, cl

执行后(al)= 00001010b,因为最后移出的一位是0,所以CF = 0。

将X逻辑右移一位,相当于执行 X = X / 2

吀靨花 – 真诚不变的爱