总复习 CBW/CWD ①注意符号扩展涉及的对象是AL和AH以及AX和DX, 与其他寄存器无关。 ②用来为有符号数除法准备被除数(16位被除数和32 位被除数)。 ③为无符号数除法准备被除数,用“0扩展”。 DAA/DAS/AAA/AAS/AAM/AAD ◆如果做BCD码加法运算,ADD、ADC指令后应紧 跟DAA指令,以保证结果正确。 调整对象只能是AL寄存器(BCD码运算只能使用 以AL寄存器为目的操作数的8位数运算指令) 令对O标志无定义,设置其他标志 16
总 复 习 CBW/CWD 16 CBW/CWD ①注意符号扩展涉及的对象是AL和AH以及AX和DX, 与其他寄存器无关。 ②用来为有符号数除法准备被除数(16位被除数和32 位被除数)。 ③为无符号数除法准备被除数,用“0扩展”。 DAA/DAS/AAA/AAS/AAM/AAD ❖如果做BCD码加法运算,ADD、ADC指令后应紧 跟DAA指令,以保证结果正确。 ❖调整对象只能是AL寄存器(BCD码运算只能使用 以AL寄存器为目的操作数的8位数运算指令)。 ❖对OF标志无定义,设置其他标志
总复习 2.3位操作指令 AND/OR/XOR/TEST/NOT ①操作数格式同加减法指令。 ②设置CF=OF=0,影响SF、ZF、PF,对AF无定义 ③TEST不影响目的操作数,只根据运算结果设置标志。 ④ NOT reg/mem不影响任何标志
总 复 习 2.3 位操作指令 17 2.3 位操作指令 AND/OR/XOR/TEST/NOT ①操作数格式同加减法指令。 ②设置CF=OF=0,影响SF、ZF、PF,对AF无定义。 ③ TEST不影响目的操作数,只根据运算结果设置标志。 ④NOT reg/mem 不影响任何标志
总复习 ①屏蔽若干位。(常用指令) AND AL,0I;屏蔽AL的D7~D1,保留D0 AND AL,0FH;屏蔽AI高4位,保留低4位 ②使若干位置1(常用指令) ORBL,0F0H;使BI高4位置1,低4位不变 ③清除CF、OF或设置标志 AND AL, AL (AND AL, OFFH; OR BL, BL 类似指令没有改变目的操作数,但使CF=OF=0,也 可能纯粹以设置其他标志(ZF)为目的。 TEST 18
总 复 习 AND/OR/XOR/TEST/NOT 18 ①屏蔽若干位。(常用指令) AND AL,01H;屏蔽AL的D7~D1,保留D0 AND AL,0FH;屏蔽AL高4位,保留低4位 ②使若干位置1 (常用指令) OR BL,0F0H;使BL高4位置1,低4位不变 ③清除CF、OF 或 设置标志 AND AL,AL (AND AL,0FFH;OR BL,BL;……) ;类似指令没有改变目的操作数,但使CF=OF=0,也 可能纯粹以设置其他标志(ZF)为目的
总复习 ④求反 NOT AL/ NOT WORD PTR[BX+D ⑤对指定位求反 XOR AL,0FH;AL高4位不变,低4位求反 XOR CL,55H;CL偶数位求反,奇数位不变 ④清除寄存器及CF(常用指令) XOR AXAX/ XOR BXBX XOR BYTE PTRLBXI, BYTE PTR[BX X 19
总 复 习 用法/2 19 ④求反 NOT AL / NOT WORD PTR[BX+DI] ⑤对指定位求反 XOR AL,0FH;AL高4位不变,低4位求反 XOR CL,55H;CL偶数位求反,奇数位不变 ⑥清除寄存器及CF(常用指令) XOR AX,AX / XOR BX,BX XOR BYTE PTR[BX],BYTE PTR[BX] ×
总复习 ⑦不改变操作数,测试操作数或操作数的指定位 TEST AL,0FFH;由ZF标志判断AL是否为零 ;也可以用CMP指令。 TEST AL,01;由ZF标志判断AL的D是否为零, ;ZF=1,则ALD0=0 ZF=0,则ALD0=1 AND AL,01;也可完成上述功能,但是改变了 目的操作数 20
总 复 习 用法/3 20 ⑦不改变操作数,测试操作数或操作数的指定位 TEST AL,0FFH;由ZF标志判断AL是否为零 ;也可以用CMP指令。 TEST AL,01;由ZF标志判断AL的D0是否为零, ;ZF=1,则AL.D0=0 ;ZF=0,则AL.D0=1 AND AL,01 ;也可完成上述功能,但是改变了 目的操作数