x86汇编_移位和循环移位指令简介_笔记46

本文详细介绍了x86处理器中的位移和旋转指令,包括逻辑左移(SHL/SAL)、逻辑右移(SHR)、算术右移(SAR)、循环移位(ROL/ROR)以及带进位的循环移位(RCL/RCR)。这些指令影响着溢出和进位标志位,并在位操作中起到关键作用,如位元乘法和位元除法。此外,还提到了双精度左移(SHLD)和右移(SHRD)指令。

移位指令与前面介绍的按位操作指令一起形成了汇编语言最显著的特点之一。位移动 (bit shifting) 意味着在操作数内向左或向右移动。x86 处理器在这方面提供了相当丰富的指令集如下表所示,这些指令都会影响溢出标志位和进位标志位

英文全称汇编指令中文翻译说明意义
Shift Logical LeftSHL逻辑左移目标操作数整体向左移指定次数,最后一个被移出来的位放入CF标志位(CY),目标操作数右边相应补0。位元乘法
Shift Logical RightSHR逻辑右移目标操作数整体向右移指定次数,最后一个被移出来的位放入CF标志位(CY),目标操作数左边相应补0。位元除法
Shift Arithmetic LeftSAL算术左移目标操作数整体向左移指定次数,最后一个被移出来的位放入CF标志位(CY),目标操作数右边相应补0。与SHL完全相同
Shift Arithmetic RightSAR算术右移目标操作数整体向右移指定次数,最后一个被移出来的位放入CF标志位(CY)。
目标操作数左边相应补0或1,取决于被移动前MSB是什么。意味着符号位可以保留。
Rotate LeftROL循环左移目标操作数循环向左移,最左边(MSB)被移出来的数字放入CF标志位,同时循环回最右边(LSB)。
Rotate RightROR循环右移目标操作数循环向右移,最右边(LSB)被移出来的数字放入CF标志位,同时循环回最左边(MSB)。
Rotate With Carry LeftRCL带进位的循环左移将CF位放到目标操作数的最左边,一起参与循环,从CF位移出去的数字循环回LSB。
Rotate With Carry RightRCR 带进位的循环右移将CF位放到目标操作数的最右边,一起参与循环,从CF位移出去的数字循环回MSB。
Shift Left Double PrecisionSHLD双精度左移
Shift Right Double PrecisionSHRD双精度右移
Least Significant Bit最低比特位LSB,在一个或多个字节中最右边的那一位,最低位。
Most Significant Bit最高比特位MSB,在一个或多个字节中最左边的那一位,最高位。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值