dzxujinsong 发表于 2021-8-12 22:42:31

shl 和 shr 指令

shl 和 shr 是逻辑移位指令,后抽课程中我们要用到移位指令,这时进行一下讲解。

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

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

    2、将最后移出的一们写入CF中,

    3、最低位用0补充,

例如如下指令:

mov al,01001000b

shl al,1                              ;al中的数据左移一位

执行后al=10010000bcf=0

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

例如:

执行后(al)=10001000b,那请问,CF的值是多少?

因为最后一们移出的是0,所以CF =0

可以看出,将X逻辑左移一位,相当于执行 x=x*2

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

将一个寄存器或内存单元中数据向右移位;

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

最高位用0补充。

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


页: [1]
查看完整版本: shl 和 shr 指令