📄 bcda.asm
字号:
org 0000h
jmp 40h
org 40h
start:
mov r7,#2 ;具体实现调用子程序之前,必须为r7、r0、r1赋值
mov r0,#40h
mov r1,#42h
acall BCDA
jmp $
;********************************************************************************
;子程序:BCDA
;功能:实现多字节BCD码加法
;入口条件:字节数在R7中,被加数在[R0]中,加数在[R1]中
;出口信息:和在[R0]中,和的字节数保存在R2中,最高进位CY中
;说明:在数据存储器的那些单元中已存放各个BCD码,如某数为51D,写入其中的值为51h
; 执行时仍按照十六进制运算,但经DA调整后才形成正确的BCD码
;********************************************************************************
BCDA:
mov r2,#00h ;和的字节数初始时置为0
clr c ;进位位清0
BCDA1:mov a,@r0 ;将被加数相应字节送入a中
addc a,@r1 ;加法运算
da a ;十进制加调整
mov @r0,a ;存和结果的相应字节
inc r0 ;修改被加数指针
inc r1 ;修改加数指针
inc r2 ;和的字节数增1
djnz r7,BCDA1 ;未加完继续执行BCDA1
ret
;********************************************************************************
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -