单片机的简单实验编程题

编写3字节二进制加法子程序,并用主程序调用不同的加数和被加数来检测该子程序的正确性。需考虑有进位和无进位情况。
程序入口为:加 数:22H,21H,20H三字节,22H为最高位
被加数:32H,31H,30H三字节,32H为最高位
程序出口为:23H,22H,21H,20H四字节,23H为最高位
实在感谢!!!!!!!!!!麻烦大家指点啊

循环3次即可。
MOV R0, #20H ;加数1地址、和的地址
MOV R1, #30H ;加数2地址
CLR C
MOV R2, #3 ;循环3次
A_LOOP:
MOV A, @R0 ;取
ADDC A, @R1 ;加
MOV @R0, A ;存
INC R0
INC R1
DJNZ R2, A_LOOP

CLR A
ADDC A, #0 ;得到进位
MOV 23H, A ;保存

RET
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-15
add:
push psw
clr c

mov a,30h
addc a,20h
mov 20h,a

mov a,31h
addc a,21h
mov 21h,a

mov a,32h
addc a,22h
mov 22h,a

mov 23h,#00h
mov 23h.0,cy

pop psw
ret