算术运算指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例3-24、例3-25
–若D7位有进位,则Cy=1,否则Cy=0; –若D3位有进位,则Ac =1,否则Ac =0; –若D6和D7中有且只有一个有进位,则Ov=1,否则Ov=0,
即Ov=D6 CyD7Cy; –若结果A中1的个数为奇数,则P=1,否则P=0。 例3-16
三、带进位的加法指令
ADDC A,#data;A←(A)+ data+ Cy ADDC A,Rn ;A←(A)+ (Rn)+ Cy ADDC A,@Ri ;A←(A)+(( Ri))+ Cy ADDC A,direct ; A←(A)+(direct)+ Cy 功能:把源操作数和A中的内容及Cy中的值相加,
加1,其结果仍送回原操作单元中。前四条是8位数 加1指令,最后一条是唯一的16位数加1指令。只有 第一条指令对PSW中的奇偶标志位P产生影响,其 余指令不会对PSW的任何标志位产生影响。 例3-20
六、减1指令
DEC A
;A←(A)-1
DEC Rn
; Rn ←( Rn )-1
DEC @Ri
– 对PSW中各位的影响:若积大于255(FFH),即B的内 容不为0时,则Ov=1,否则Ov=0;Cy总是清零;P由A中1 的个数的奇偶性确定;对Ac位无影响。(例3-21)
2、除法指令
– DIV AB;A(商)…B(余数)←A/B – 功能:把A中的8位无符号整数除以B中的8位无符号整数,结果商存
其结果仍存在A中。 对PSW中各位的影响:与ADD指令相同。 作用:一般用于多字节数的加法运算,低字节相加
时可能产生进位,可以通过带进位加法指令将低字 节的进位加到高字节上去。高字节求和时必须使用 带进位的加法指令。 例3-17、例3-18
四、带借位的减法指令
SUBB A,#data;A←(A)- data- Cy SUBB A,Rn ;A←(A)-( Rn) - Cy SUBB A,@Ri ;A←(A)-(( Ri)) - Cy SUBB A,direct ; A←(A)-(direct)- Cy 功能:把A中的内容减去源操作数所指出的内容和
放在A中,余数存放在B中。
– 对PSW中各位的影响: Cy总是清零; Ac位无影响; P由A 中1的个数的奇偶性确定;若除数为0(B=0),此时 Ov=1,说明除法溢出,否则Ov=0。(例3-23)
八、十进制调整指令
DA A;若Ac=1或A3~0>9,则A3~0← A3~0+6(A←A+06H); 若Cy=1或A7~4>9,则A7~4← A7~4+6(A←A+60H)(由CPU 自动判断并执行)
;( Ri)←(( Ri))-1
Baidu Nhomakorabea
DEC direct ; direct←( direct)-1
功能:将源操作数所指定的单元或寄存器中的 内容减1,其结果仍送回原操作单元中。对PSW 的影响同INC指令。
例3-21
七、乘、除法指令
1、乘法指令
– MUL AB;BA←(A)X(B)
– 功能:把A和B中两个8位无符号数相乘,得到16位积,低8位 存放在A中,高8位存放在B中。
进位位标志Cy的值,差存入A中。
对PSW中各位的影响:
–若D7位有进位(借位),则Cy=1,否则Cy=0; –若D3位有进位(借位) ,则Ac =1,否则Ac =0; –若D6和D7中有且只有一个有进位(借位) ,则Ov=1,否
则Ov=0; –若结果A中1的个数为奇数,则P=1,否则P=0。
例3-19
一、指令特点
1、包括加、减、乘、除基本运算共24条 指令;
2、除加1、减1指令外,对PSW中的Cy、 Ac、Ov、P四个标志位都有影响;
3、助记符:ADD、ADDC、SUBB、INC、 DEC、DA、MUL和DIV等8种。
二、不带进位的加法指令
ADD A,#data;A←(A)+ data ADD A,Rn ;A←(A)+ (Rn) ADD A,@Ri ;A←(A)+(( Ri)) ADD A,direct ; A←(A)+ (direct) 功能:把源操作数和A中的数相加,其结果仍存在A中。 对PSW中各位的影响:
功能:在进行BCD码加法运算时,用来对BCD码的加法运 算结果自动进行修正。一般跟在ADD或ADDC指令之后,用 来对加法结果进行修正。
为什么要进行修正?在计算机中,十进制数字0~9是用BCD 码来表示的。而计算机在进行运算时是按二进制规则进行的 (只有ADD、ADDC两条二进制加法指令)。对于4位二进 制数有16种状态,对应16个数字,而十进制只用其中的10种 状态来表示0~9,因而按二进制规则运算就可能导致错误的 结果。因此,必须用DA A指令进行调整。
五、加1指令
INC A ;A←(A)+1 INC Rn ; Rn ←( Rn )+1 INC @Ri ;( Ri)←(( Ri))+1 INC direct ; direct←( direct)+1 INC DPTR ;DPTR←(DPTR)+1 功能:将源操作数所指定的单元或寄存器中的内容
–若D7位有进位,则Cy=1,否则Cy=0; –若D3位有进位,则Ac =1,否则Ac =0; –若D6和D7中有且只有一个有进位,则Ov=1,否则Ov=0,
即Ov=D6 CyD7Cy; –若结果A中1的个数为奇数,则P=1,否则P=0。 例3-16
三、带进位的加法指令
ADDC A,#data;A←(A)+ data+ Cy ADDC A,Rn ;A←(A)+ (Rn)+ Cy ADDC A,@Ri ;A←(A)+(( Ri))+ Cy ADDC A,direct ; A←(A)+(direct)+ Cy 功能:把源操作数和A中的内容及Cy中的值相加,
加1,其结果仍送回原操作单元中。前四条是8位数 加1指令,最后一条是唯一的16位数加1指令。只有 第一条指令对PSW中的奇偶标志位P产生影响,其 余指令不会对PSW的任何标志位产生影响。 例3-20
六、减1指令
DEC A
;A←(A)-1
DEC Rn
; Rn ←( Rn )-1
DEC @Ri
– 对PSW中各位的影响:若积大于255(FFH),即B的内 容不为0时,则Ov=1,否则Ov=0;Cy总是清零;P由A中1 的个数的奇偶性确定;对Ac位无影响。(例3-21)
2、除法指令
– DIV AB;A(商)…B(余数)←A/B – 功能:把A中的8位无符号整数除以B中的8位无符号整数,结果商存
其结果仍存在A中。 对PSW中各位的影响:与ADD指令相同。 作用:一般用于多字节数的加法运算,低字节相加
时可能产生进位,可以通过带进位加法指令将低字 节的进位加到高字节上去。高字节求和时必须使用 带进位的加法指令。 例3-17、例3-18
四、带借位的减法指令
SUBB A,#data;A←(A)- data- Cy SUBB A,Rn ;A←(A)-( Rn) - Cy SUBB A,@Ri ;A←(A)-(( Ri)) - Cy SUBB A,direct ; A←(A)-(direct)- Cy 功能:把A中的内容减去源操作数所指出的内容和
放在A中,余数存放在B中。
– 对PSW中各位的影响: Cy总是清零; Ac位无影响; P由A 中1的个数的奇偶性确定;若除数为0(B=0),此时 Ov=1,说明除法溢出,否则Ov=0。(例3-23)
八、十进制调整指令
DA A;若Ac=1或A3~0>9,则A3~0← A3~0+6(A←A+06H); 若Cy=1或A7~4>9,则A7~4← A7~4+6(A←A+60H)(由CPU 自动判断并执行)
;( Ri)←(( Ri))-1
Baidu Nhomakorabea
DEC direct ; direct←( direct)-1
功能:将源操作数所指定的单元或寄存器中的 内容减1,其结果仍送回原操作单元中。对PSW 的影响同INC指令。
例3-21
七、乘、除法指令
1、乘法指令
– MUL AB;BA←(A)X(B)
– 功能:把A和B中两个8位无符号数相乘,得到16位积,低8位 存放在A中,高8位存放在B中。
进位位标志Cy的值,差存入A中。
对PSW中各位的影响:
–若D7位有进位(借位),则Cy=1,否则Cy=0; –若D3位有进位(借位) ,则Ac =1,否则Ac =0; –若D6和D7中有且只有一个有进位(借位) ,则Ov=1,否
则Ov=0; –若结果A中1的个数为奇数,则P=1,否则P=0。
例3-19
一、指令特点
1、包括加、减、乘、除基本运算共24条 指令;
2、除加1、减1指令外,对PSW中的Cy、 Ac、Ov、P四个标志位都有影响;
3、助记符:ADD、ADDC、SUBB、INC、 DEC、DA、MUL和DIV等8种。
二、不带进位的加法指令
ADD A,#data;A←(A)+ data ADD A,Rn ;A←(A)+ (Rn) ADD A,@Ri ;A←(A)+(( Ri)) ADD A,direct ; A←(A)+ (direct) 功能:把源操作数和A中的数相加,其结果仍存在A中。 对PSW中各位的影响:
功能:在进行BCD码加法运算时,用来对BCD码的加法运 算结果自动进行修正。一般跟在ADD或ADDC指令之后,用 来对加法结果进行修正。
为什么要进行修正?在计算机中,十进制数字0~9是用BCD 码来表示的。而计算机在进行运算时是按二进制规则进行的 (只有ADD、ADDC两条二进制加法指令)。对于4位二进 制数有16种状态,对应16个数字,而十进制只用其中的10种 状态来表示0~9,因而按二进制规则运算就可能导致错误的 结果。因此,必须用DA A指令进行调整。
五、加1指令
INC A ;A←(A)+1 INC Rn ; Rn ←( Rn )+1 INC @Ri ;( Ri)←(( Ri))+1 INC direct ; direct←( direct)+1 INC DPTR ;DPTR←(DPTR)+1 功能:将源操作数所指定的单元或寄存器中的内容