;8051/80314字节十进制加法
;加数存储单元为50H,51H,52H,53H
;被加数存储单元为20H,21H,22H,23H
;入口参数:被加数地址由R0指出,被加数首地址由R1指出,循环次数由R2指出
;出口参数: 结果存储到20H,21H,22H,23H
; Author:borlittle
;2009-13:07
; 高位 高位 低位 低位
; 加数: 33 35 55 37
;加数地址: 53 52 51 50
; 被加数: 44 64 44 63
;被加数地址:23 22 21 20
; 结果: 78 00 00 00
ORG 0000H
LJMP MAIN
ORG 4030H
MAIN:MOV SP,#60H
MOV R0,#20H ;被加数赋值
MOV @R0,#63H
INC R0
MOV @R0,#44H
INC R0
MOV @R0,#64H
INC R0
MOV @R0,#44H
MOV R1,#50H ;加数赋值
MOV @R1,#37H
INC R1
MOV @R1,#55H
INC R1
MOV @R1,#35H
INC R1
MOV @R1,#33H
MOV R2,#04H ;由低位到高位共计算4次
MOV R0,#20H
MOV R1,#50H ;初始化对齐
LCALL DACN
HERE:LJMP HERE
DACN:CLR C
DAL:
MOV A,@R0
ADDC A,@R1
DA A ;十进制调整
MOV @R1,A
INC R0
INC R1
DJNZ R2,DAL
CLR A
ADDC A,#00H
RET
END
文章评论(0条评论)
登录后参与讨论