总复习 2.1.2堆栈操作指令 PUSH r16/m16/seg POP r16/ m16/seg ①堆栈操作是字操作指令 ②在“P0P”指令中,“ POP CS”为非法指令。 ③堆栈操作指令不影响标志
总 复 习 PUSH/POP 11 2.1.2 堆栈操作指令 PUSH r16/m16/seg POP r16/m16/seg ①堆栈操作是字操作指令 ②在“POP”指令中,“POP CS”为非法指令。 ③堆栈操作指令不影响标志
总复习 2.1.3标志传送指令 LAHF/SAHF/PUSHF/POPF 2.1.4地址传送指令 LEA/LDS/LES LEA r16 mem 2.1.5输入输出指令 N/OUT 2
总 复 习 地址传送指令 12 2.1.3 标志传送指令 LAHF/SAHF/PUSHF/POPF 2.1.4 地址传送指令 LEA/LDS/LES LEA r16,mem 2.1.5 输入输出指令 IN/OUT
总复习 2.2算术运算指令 ADD/ADC/INC SUB/SBB/DEC/NEG/CMP ①加法指令对标志的影响:ADD和AD指令对所有 的6个状态标志都有影响,IN指令不影响GF, 影响其他五个标志。学习加减法指令要会设置 标志、使用标志。 ②加减法运算要注意0和F的意义不同,用法不 ③注意NEG/CMP指令的用法。 13
总 复 习 2.2 算术运算指令 13 2.2 算术运算指令 ADD/ADC/INC SUB/SBB/DEC/NEG/CMP ①加法指令对标志的影响:ADD和ADC指令对所有 的6个状态标志都有影响,INC指令不影响CF, 影响其他五个标志。学习加减法指令要会设置 标志、使用标志。 ②加减法运算要注意OF和CF的意义不同,用法不 同。 ③注意NEG/CMP指令的用法
总复习 MUL/IMUL ①指令指定的是乘数,被乘数是隐含的。如乘数类 型为字节,则被乘数为AL,16位乘积用A;如乘数类 型为字,则被乘数为A,32位乘积用DX,AX。 ②影响CF、0F标志:如果乘积的高一半为零,或 高一半为低一半的符号扩展,则CF=0F=0,否则, GF=0F=1。对其他标志无定义。 ③单操作数指令,涉及mem时,须指定类型。 MUL BYTR PTR[BX+sI MUL WORD PTR[BX+sI] 14
总 复 习 MUL/IMUL 14 MUL/IMUL ①指令指定的是乘数,被乘数是隐含的。如乘数类 型为字节,则被乘数为AL,16位乘积用AX;如乘数类 型为字,则被乘数为AX,32位乘积用DX,AX。 ②影响 CF 、OF 标志:如果乘积的高一半为零,或 高一半为低一半的符号扩展,则 CF=OF=0,否则, CF=OF=1。对其他标志无定义。 ③单操作数指令,涉及mem时,须指定类型。 MUL BYTR PTR[BX+SI] MUL WORD PTR[BX+SI]
总复习 DIV/DIV ①指令指定的是除数,被除数是隐含的;除数为字节, 则称为“字节除”,被除数使用AX;除数为字,称为 “字除”,被除数使用DXAK。 ②操作数的格式与乘法指令相同。 ③指令对状态标志无定义。 ④当产生除法溢出,CPU自动产生“0号”中断,运行 相 应中断服务程序。程序设计时,应避免产生除法溢出。 15
总 复 习 DIV/IDIV 15 DIV / IDIV ①指令指定的是除数,被除数是隐含的;除数为字节, 则称为“字节除”,被除数使用AX;除数为字,称为 “字除”,被除数使用DX AX。 ②操作数的格式与乘法指令相同。 ③指令对状态标志无定义。 ④当产生除法溢出,CPU自动产生“0号”中断,运行 相 应中断服务程序。程序设计时,应避免产生除法溢出