汇编指令--移位操作SHL、SHR、SAL、SAR以及它们的区别

逻辑移位:  SHL、SHR
算术移位:  CAL、CAR

  
  
  • 1
  • 2
  • 无符号数的乘法和除法可以用逻辑移位;

  • 有符号数的乘法和除法可以用算术移位;

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

汇编语言中 sal(算术左移指令)和shl(逻辑左移指令)指令的区别?

汇编语言中 sal(算术左移指令)和shl(逻辑左移指令)指令的寻址方式、控制移位方式等都一样,区别其实只有一处:
SAL算术移位指令在执行时,实际上把操作数看成有符号数进行移位,最高位符号位移入CF,但本身保持原值;其余位顺序左移,次高位被舍弃。
SHL逻辑移位指令在执行时,实际上把操作数看成无符号数进行移位,所有位顺序左移,最高位移入CF。
举例如下:
MOV AX,8001H;(AX)=1000 0000 0000 0001B
SAL AX,1 ;(AX)=1000 0000 0000 0010B
MOV AX,8001H;(AX)=1000 0000 0000 0001B
SHL AX,1 ;(AX)=0000 0000 0000 0010B

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值