80X86汇编语言程序设计⑦.80868088指令系统(四)逻辑运算和移位指令[归.pdf
《80X86汇编语言程序设计⑦.80868088指令系统(四)逻辑运算和移位指令[归.pdf》由会员分享,可在线阅读,更多相关《80X86汇编语言程序设计⑦.80868088指令系统(四)逻辑运算和移位指令[归.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、80X86 汇编语言程序设计第二章 8086/8088 寻址方式和指令系统(四)逻辑运算和移位指令1.逻辑运算指令(1)否操作指令NOT格式:NOT OPRD这条指令把操作数OPRD 取反,然后送回OPRD。操作数 OPRD 可以是通用寄存器,也可以是存储器操作数,不能是立即数。此指令对标志位没有影响。例如:MOV AL,03HNOT AL指令执行后:(AL)=0FCH(2)与操作指令AND格式:AND OPRD1,OPRD2这条指令对两个操作数进行按位的逻辑“与”运算,结果送到目的操作数OPRD1。该指令执行以后,标志CF=0,标志 OF=0,标志 PF、ZF、SF 反映运算结果,标志AF
2、未定义。某个操作数自己与自己相“与”,则值不变,但可使进位标志CF 清0。与操作指令主要用在使一个操作数中的若干位维持不变,而另外若干位清为0的场合。把要维持不变的这些位于“1”相“与”,而把要清为0的这些位于“0”相“与”就能达到这样的目的相“与”:两个操作数都是1的,结果为 1,其他情况全是0。例如:MOV AL,23HMOV BL,02HAND AL,BL指令执行后:(AL)=02H(AL)=23H,将 AL 寄存器的第一位和第三位清零,其余位不变,则BL 是什么时,与AL执行 AND 指令可完成?(BL)=F5HMOV AL,23HMOV BL,F5HAND AL,BL(3)或操作指令
3、OR格式:OR OPRD1,OPRD2这条指令执行以后,标志CF=0,标志 OF=0.,标志 PF、ZF、SF 反映运算结果,标志AF 未定义。某个操作数自己与自己相“或”,则值不变,但可使进位标志CF 清0。相“或”:两个操作数中有一个是1的,结果为 1,其他情况全是0。或操作指令主要用于在使一个操作数中的若干位维持不变,而另外若干位置为1的场合。把要维持不变的这些位于“0”相“或”,而把要置为 1的这些位与“1”相“或”就能达到这样的目的。例如:MOV BL,12HOR BL,BL(BL)=12H CF=0(4)异或操作指令XOR格式:XOR OPRD1,OPRD2相“异或”:两个操作数,
4、一个是0,一个是 1,则为 1;两个都为 1,则为 0;两个都为 0,则为 0。这条指令对两个操作数进行按位的逻辑“异或”运算,结果送到目的操作数OPRD1。该指令执行以后,标志CF=0,标志 OF=0,标志 PF、ZF、SF反映运算结果,标志AF 未定义。某个操作数自己与自己相“异或”,则结果为 0,并可使进位标志CF 清0。异或操作指令主要用于在使一个操作数中的若干位维持不变,而另外若干位置取反的场合。把要维持不变的这些位于“0”相“异或”,而把要取反的这些位与“1”相“异或”就能达到目的。例如:MOV BL,56HXOR BL,BL指令执行后:(BL)=0 CF=0(5)测试指令TEST
5、格式:TEST OPRD1,OPRD2这条指令和指令AND 类似,也把两个操作数进行按位“与”,但结果不送到操作数OPRD1。该指令执行以后,标志ZF、PF 和 SF 反映运算结果,标志CF 和 OF 被清 0。该指令通常用于检测某些位是否为1,但又不希望改变原操作数值的场合。例如:要检查 AL中的位 6或位 2是否有一位为 1,可使用下面的指令:TEST AL,01000100B;符号B 表示二进制(44H)如果位 6和位 2全为 0,那么在执行上面的指令后,ZF 被置 1,否则 ZF 被清 0。例如:要求屏蔽0、1两位,可用AND 指令并设置常数0FCH。MOV AL,0BFHAND AL
6、,0FCH这两条指令执行的结果使(AL)0BCH 所以 AND 指令可以使操作数的某些位被屏蔽。例如:要求第5位置 1,可用 OR 指令MOV AL,43HOR AL,20H这两条指令执行后,(AL)=63H,所以用OR 指令可以使操作数的某些位置1,其它位则保持不变。例如:要测试操作数的某位是否为1,则可先把该操作数求反然后用TEST指令测试。如要测试AL 寄存器中第二位是否为1,如为 1则转移到EXIT 去执行,可用下列指令序列:MOV DL,ALNOT DLTEST DL,00000100BJE EXIT2.一般移位指令(1)算术左移或逻辑左移指令SAL/SHL(Shift Aritlu
7、netic Left 或 Shift Logic Left)算术左移和逻辑左移进行相同的动作,尽管为了方便提供有两个助记符,但只有一条机器指令。格式:SAL OPRD,m文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10
8、文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z1
9、0文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z
10、10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10
11、Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J1
12、0Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J
13、10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3
14、J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10SHL OPRD,m算术左移SAL(有符号数)/逻辑左移SHL(无符号数)指令把操作数OPRD左移 m,每移动一位,右边用0补足一位,移出的最高位进入标志位CF。例如:MOV AL,12H;0001 0010BSHL AL,1;0010 0100B指令执行后(AL)=24H(相当于乘以2)MOV AL,8CH;1000 1100BSHL AL,1;0001 1000B 指令执行后(AL)=18H,CF=1,PF=1,ZF=0,SF=0,OF=1溢出标志OF 是在移一位的时候有效,如果移动6位,8位
15、,多位就无效。MOV AL,8CH MOV CL,6SHL AL,CL指令执行后(AL)=0,CF=0,PF=1,ZF=1,SF=0,OF=0移位次数超过1的,一定要把移位次数放到CL 里面去。只要左移以后的结果未超出一个字节或一个字的表达范围,那么每左移一次,原操作数每一位的权增加了一倍,也即相当于原数乘2。例如:实现把寄存器AL 中的内容(设为无符号数)乘10,结果存放在AX 中。XOR AH,AH;(AH)=0 将 AH 清零SHL AL,1;2X,设(AL)=X,并且左移一次MOV BX,AX;送入 BX 暂存 2XSHL AX,1;4X 将 AX 左移一次SHL AX,1;8X 将
16、AX 再左移一次ADD AX,BX;8X+2X(2)算术右移指令SAR(Shift Arithmetic Right)格式:SAR OPRD,m该指令使操作数右移m 位,同时每移一位,左边的符号位保持不变,移出的最低位进入标志位CF。例如:MOV CL,5SAR DI,CL如指令执行前:(DS)=0F800H,(DI)=180AH,(0F980A)=0064H0000 0000 0110 0100B0000 0000 0000 0011B如指令执行后:(0F980A)=0003H,CF=0对于有符号数和无符号数而言,算术右移一位相当于除以2。如果最高有效位是0,那么右移之后,在左边添加的就是0
17、;如果最高有效位是1,那么右移之后,在左边添加的就是1。(3)逻辑右移指令SHR(Shift logic Right)格式:SHR OPRD,m该指令使操作数右移m 位,同时每移一位,左边用0补足,移出的最低位进入标志位CF。对于无符号数而言,逻辑右移一位相当于除以2。文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A
18、3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5
19、A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A
20、5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5A5A3J10Z10文档编码:CZ9J3C4I8N2 HX2Y6J10R5U1 ZE5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 X86 汇编语言 程序设计 80868088 指令系统 逻辑运算 移位 指令
限制150内