逻辑与位移指令

一、逻辑指令

1、AND 与指令

格式:AND DST,SRC

操作:(DST)<-(DST)^(SRC)

2、OR 或指令

格式:OR DST,SRC

操作:(DST)<-(DST)V(SRC)

3、NOT 非指令【不影响任何标志位】

格式:NOT OPR

操作:(OPR)<-(OPR)

4、XOR 异或指令【相同为0,不同为0】
5、TEST 测试指令【TEST指令的两个操作数相与的结果不保存,只根据结果置标志位】

格式:TEST OPR1,OPR2

操作:(OPR1)^(OPR2)

二、移位指令【CF进位】

1、SHL 逻辑左移
2、SAL 算术左移

当执行逻辑或算术左移时,操作结果相同,均是最低为补0,移出的最高位送CF标志位。

3、SHR 逻辑右移

当执行逻辑右移时,最高位补0,移出的最低位送CF标志位。

4、SAR 算术右移

当执行算术右移时,OPR被认为是有符号数,则最高位补符号位自身,移出的最低位送CF标志位

5、ROL 循环左移

当执行循环左移时,OPR整体向左移一位,最高位移出,同时送入CF标志位和最低位

6、ROR 循环右移

当执行循环右移时,OPR整体向右移一位,最低位移出,同时送入CF标志位和最高位

7、RCL 带进位循环左移

当执行带进位循环左移时,OPR整体向左移一位,此时最高位移出送CF标志位,而CF标志位原始的数值送OPR最低位

8、RCR 带进位循环右移

当执行带进位循环右移时,OPR整体向右移一位,此时最低位移出送CF标志位,而CF标志位原始的数值送OPR最高位

以上格式相同:(1)SHL OPR,1 (2)SHL OPR,CL,其中寄存器的值大于1

如需移位的次数大于1,则可以在该移位指令前把移位次数先送入CL寄存器中

例:对AX中的内容实现半字交换,即交换AH和AL中的内容

MOV CL,8

ROL AX,CL

如指令执行前,AX=1234H,指令执行后,AX=3412H。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值