4-6逻辑运算与移位指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑运算指令
逻辑运算指令
⏹AND(与)
⏹OR(或)
⏹NOT(非)
⏹XOR(异或)
⏹TEST(测试)
逻辑运算指令
AND AL,0FH;AL中内容和0FH相与,结果在AL
OR AX,00F0H;AX和00F0H相或,结果在AX
XOR AX,AX;AX内容本身进行异或,结果AX清零
NOT AL;AL中内容求反码,结果AL中
TEST和AND执行同样操作,但TEST指令不送回操作结果,而仅仅影响标志位。如:
TEST AX,8000H;如AX的最高位为1,则ZF=0,否则ZF=1
移位指令
⏹非循环移位
☐算术左移指令SAL
☐逻辑左移指令SHL
☐算术右移指令SAR
☐逻辑右移指令SHR ⏹循环移位
☐循环左移指令ROL
☐循环右移指令ROR
☐带进位循环左移指令RCL
☐带进位循环右移指令RCR
非循环移位指令 非循环移位
(a)算术左移指令SAL
(b)逻辑左移指令SHL
(c)算术右移指令SAR
(d)逻辑右移指令SHR
算术移位是对有符号数进行移位,在移位过程中必须保持符号不变;
逻辑移位是对无符号数进行移位,总是用0来填补已空出的位;
循环移位指令 循环移位
(a)循环左移指令ROL
(b)循环右移指令ROR
(c)带进位循环左移指令RCL
(d)带进位循环右移指令RCR
循环移位是将操作数
首尾相接进行移位
移位指令示例
目标操作数允许是8/16位的通用寄存器或内存单元若只移1位,则指令中直接写1;
若移多位,需要先将移位次数送到CL寄存器中。SAL BX,1;BX的内容算术左移1位
ROR AX,1;AX的内容循环右移1位
MOV CL,6;先指定移位位数
SAR DX,CL;DX的内容算术右移6位
RCL AX,CL;AX的内容连同CF循环左移6位