- 1
- 0
- 约7.94千字
- 约 21页
- 2017-11-28 发布于浙江
- 举报
单片机的硬件结构第四章文档
第四章?MCS-51单片机的应用程序设计 一、 多字节数加法
?
1.多字节无符号数加法
?
CLR? C
MOV? R0,#40H? ;指向加数最低位
MOV? R1,#5OH? ;指向另一加数最低位
MOV? R2,#04H? ;字节数作计数初值
LOOP1:MOV? A,@R0??? ;取被加数
ADDC A,@R1??? ;两数相加,带进位
MOV? @R0,A
INC? R0??????? ;修改地址
INC? R1
DJNZ R2,LOOPl ;未加完转LOOP1
JNC? LOOP2??? ;无进位转LOOP2
MOV? @R0,#01H
LOOP2:DEC? R0
RET
?
2.多字节有符号数加法
?
SDADD:CLR 07H??????? ;标志位清零
MOV A,R0?????? ;复制保存地址指针
MOV R2,A
MOV A,R3
MOV R7,A
CLR C
LOOP1:MOV A,@R0
ADDC A,@R1??? ;相加
MOV @R0 ,A
INC R0
INC R1??????? ;地址指针加1
DJNZ R7,LOOP1
JB OV,ERR?? ;若溢出,转溢出处理
DEC R0
MOV A,@R0
JNB E7H,LOOP2
SETB 07H???? ;和值为负,置位标志
LOOP2:MOV A,R2???? ;恢复地址指针
MOV R0,A
RET
┇
ERR:┇?????????? ;溢出处理
RET
?
二、 多字节数减法
?
?
MOV R0,#40H???? ;指向被减数最低位
MOV R1,#5OH???? ;指向减数最低位
MOV R2,#04H???? ;字节数
CLR C
LOOP1:MOV A,@R0
SUBB A,@R1????? ;完成一个字节的减法运算
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOP1
RET
?
三、 多字节十进制数(BCD码)加法
?
?
BCDADD:????????? MOV 20H,R0
?
MOV 23H,R3
?
???????????????????? CLR C
LOOP0:??? ????????MOV A,@R0????? ;取被加数
???????????????????? ADDC A,@R1???? ;两数相加
???????????????????? DA A??????????? ;十进制调整
???????????????? ????MOV @R0,A
???????????????????? INC R0????????? ;指针加1
???????????????????? INC R1?
?????????????, nbsp;?????? DJNZ R3,LOOP0 ;作完加法否
???????????????????? MOV? R2. #23H
???????????????????? JNC? RETURN??????? ;有无进位
?
MOV@ R0,#01H
INC R3
?
RETURN:?????????? MOV R0,#20H
??????????????????? RET
?
?
四、 多字节数乘法
?
?
ZHENFA: ???????????MOV A,R0
?
MOV B,R1
?
??????????????????? MUL AB?????? ;(R1)*(R0)
MOV R3,A??? ;积的低位送到R3
?
MOV R4,B??? ;积的高位送到R4
?
MOV A,R0
MOV B,R2
?
??????????????????? MUL AB?????? ;(R2)*(R0)
??????????????????? ADD A,R4??? ;(R1)*(R0)的高位加(R2)*(R0)的低位
??????????????????? MOV R4,A??? ;结果送R4,进位在CY中
??????????????????? MOV A,B
??????????????????? ADDC A,#OOH;(R2)*(R0)的高位加低位来的进位
MOV R5,A?? ;结果送R5
?
??????????????????? RET
?
?
五、 多字节数除法
?
DV:? MOV R7,#08H???? ;设计数初值
DVl: CLR C
????????? MOV A,R5
?
????????? RLC A
????????? MOV R5,A
????????? MOV A,R6
?
????????? RLC A????????? ;将(R6)、(R5)左移一位
????????? MOV 07H,C???? ;将移出的
原创力文档

文档评论(0)