算术移位指令分为算术左移SAL和算术右移SAR,指令格式如下:
SAL/SAR Reg/Mem, CL/lmm
受影响的标志位位CF、OF、PF、SF、和ZF。
1.算术左移把目的操作数的低位向高位移,空出的低位补0
举例1:(AH)=12H,执行SAL AH,1指令后,(AH)=24H
详细解释:AH化为二进制数为00010010,左移一位后为00100100,即为24H
举例2:(BL)=0A9H,执行SAL BL,1后,(BL)=52H
详细解释:BL化为二进制为10101001,左移一位后为01010010,即为52H
2.算术右移把目的操作数的高位向低位移,空出的高位用高位(符号位)填补。
举例1:(AH)=12H,执行SAR AH,1指令后,(AH)=09H
详细解释:AH化为二进制数为00010010,右移一位后为00001001,即为09H
举例2:(BL)=0A9H,执行SAR BL,1后,(BL)=0D4H
详细解释:BL化为二进制为10101001(此时高位为1),右移一位后为11010100(最高位的1是用高位填补得来的),即为0D4H