1. 加法运算指令(CPU只要涉及运算,就会影响标志位)
a. ADD 操作数1 ,操作数2
§ 操作数1+操作数2→操作数1然后,自动影响6个状态标志位
b. ADC 操作数1 ,操作数2
§ 操作数1 +操作数2 +CF→ 操作数1,影响6个状态标志位
c. INC 操作数(不影响CF)
§ 操作数 +1→操作数1
2. 减法运算指令
a. SUB 操作数1 ,操作数2(根据结果影响6个状态标志位)
§ 操作数1-操作数2→操作数1
b. SBB 操作数1 ,操作数2(根据结果影响6个状态标志位)
§ 操作数1-操作数2-CF→操作数1
c. DEC 操作数(不影响CF)
§ 操作数 - 1→操作数
d. NEG 操作数(取负指令,操作数是8/16位寄存器或者存储器操作数)(根据结果影响6个状态标志位)
§ 0-操作数→操作数
§ 对操作数求负→操作数
e. CMP 操作数1 ,操作数2 (运算后操作数不变,仅仅影响标志位!)
§ 操作数1-操作数2
3. 乘法指令(隐含寻址,隐含的是存放的被乘数的AL或AX以及存放结果的AX或DX AX)
a. 无符号的乘法指令 MUL
§ MUL 操作数 (源操作数不可以是立即数)
b. 有符号的乘法指令 IMUL
§ IMUL 操作数
4. 除法指令(被除数必须是除数的双倍字长)(隐含的是被除数AX或DXAX)
a. 无符号数除法 DIV
a. DIV 操作数
□ 如果除数是字节,那么被除数应在AX中,结果的商存在AL、余数存在AH中
□ 如果除数是字,那么被除数应该在DX、AX中,结果的商存在AX、余数存在DX中
□ 如果被除数只有16位,那么必须将被除数送进AX,DX清零,组成DXAX32位的被除数,然后相除
□ 除数、被除数、商和余数均为无符号数
b. 有符号数除法 IDIV
a. IDIV 操作数
□ 除数、被除数、商和余数都是有符号数
□ 余数的符号与被除数符号相同
8086/8088算术运算指令(通常会影响状态标志位)
最新推荐文章于 2021-10-19 16:39:56 发布