有多个单字节数,依次放在外部RAN21H开始连续单元,把计算结果放在R1和R2中(假定相加的和为字节数)编写程序.

来源:百度知道 编辑:UC知道 时间:2024/06/27 09:52:46
各位大哥帮帮忙吧?

你的题目不完整吧,不提供单字节数的个数无法控制循环,既然说了计算结果放在R1和R2中那就说明结果是2字节数而不是单字节数.

完整的题目应该是这样的:
无符号的多个单字节数加法.多个单字节数(假设7个字节)依次存放在片内RAM 21H开始的连续单元中,要求将计算结果存放在R1和R2中(假定相加的和为2字节数),其中R1为高位,R2为低位.

程序如下:

ORG 2000H
MOV R0,#21H ;定义R0为地址指针
MOV R3,#07H ;定义字节数
MOV R2,#00H ;定义和的初值(低字节)
MOV R1,#00H ;定义和的初值(高字节)
LOOP:MOV A, @R0 ;取加数
ADD A,R2 ;加法运算
MOV R2,A ;存结果
JNC LOOP1 ;判断有进位
INC R1 ;有进位高字节加1
LOOP1:INC R0 ;修改地址指针
DJNZ R3,LOOP ;字节数减1,并判断为零
JMP $