算术运算指令分为二进制算术运算指令与BCD码算术运算调整指令,下面我们就来说一说关于微处理器处理指令与数据速度?我们一起去了解并探讨一下这个问题吧!

微处理器处理指令与数据速度(32位微处理器指令系统之加减算术运算指令)

微处理器处理指令与数据速度

算术运算指令分为二进制算术运算指令与BCD码算术运算调整指令。

加法指令

1. ADD指令

指令格式:ADD OPD,OPS

功能:(OPD) (OPS)→OPD

影响的标志位是:AF、OF、PF、SF、ZF、CF

ADD指令有下面5种具体格式:(同MOV)

ADD reg,reg ;例 ADD AX,BX 和 ADD EAX,EBX ADD reg,mem ;例 ADD AX,[ESI] 和 ADD EAX,[ESI] ADD mem,reg ;例 ADD [ESI],BX 和 ADD [ESI],EBX ADD reg,imm ;例 ADD AX,2 和 ADD EAX,22334455H ADD mem,imm ;例 ADD BYTE PTR [DI],3 和 ADD WORD ;PTR [ESI],1104H

例:

利用加法指令实现1位数值数据0~9和其对应的1位字符数据'0'~'9'的转换。

查ASCII表可知字符数据‘0’~‘9’的ASCII为30H~39H,1位数值数据与它对应的字符数据之间的差为30H。(0的asc码是48)

假定AL中存放了1位数值数据(0~9),指令ADD AL,30H可实现此转换。

MOV AL,1 ADD AL,30H ;CF=0,SF=0,OF=0,ZF=0,PF=0

2. ADC指令(带进位加法指令)

指令格式:ADC OPD,OPS

功能:(OPD) (OPS) CF → OPD

影响的标志位是:AF、OF、PF、SF、ZF、CF

ADC指令也有5种具体格式,就是把ADD指令5种具体格式中的ADD换成ADC。

3. INC指令(加1指令)

指令格式:INC OPD

功能:(OPD) 1→OPD

影响的标志位是:AF、OF、PF、SF、ZF

INC指令有下面2种具体格式:

INC reg ;例 INC AL、INC AX 和 INC EAX INC mem ;例 INC BYTE PTR [SI] 和 INC ;BYTE PTR [ESI]


减法指令

1. SUB指令

指令格式:SUB OPD,OPS

功能:(OPD)-(OPS)→OPD

影响的标志位是:AF、OF、PF、SF、ZF、CF

SUB 指令也有5种具体格式:

2. SBB指令(带借位减法指令)

指令格式:SBB OPD,OPS

功能:(OPD)-(OPS)- CF → OPD

影响的标志位是:AF、OF、PF、SF、ZF、CF

SBB指令也有5种具体格式,就是把SUB指令5种具体格式中的SUB换成SBB。

例:

利用SUB和SBB指令,实现两个64位二进制数相减。设被减数高、低32位分别存放在EAX和EBX中,减数的高、低32位分别存放在ECX和EDX中,假设(EAX)=99998888H,(EBX)=11112222H,(ECX)=22223333H,(EDX)=88881111H,相减的结果存于(EAX)和(EBX)中。主要程序如下:

SUB EBX,EDX ;(EBX)←(EBX)-(EDX),结果是

;CF=1, (EBX)=88891111H

SBB EAX,ECX ;(EAX)←(EAX)-(ECX)-CF,结

;果是CF=0,(EAX)=77775554H

3. DEC指令(减1指令)

指令格式:DEC OPD

功能:(OPD)-1→OPD

影响的标志位是:AF、OF、PF、SF、ZF

DEC 指令有下面2种具体格式:

DEC reg ;例 DEC EAX

DEC mem ;例 DEC BYTE PTR [ESI]

4. CMP指令(比较指令)

指令格式:CMP OPD,OPS

功能:(OPD)-(OPS)

影响的标志位是:AF、OF、PF、SF、ZF、CF

,