两个4位BCD数码相加,被加数和加数分别存于30H,31H和40H,41H单元中

来源:百度知道 编辑:UC知道 时间:2024/06/23 09:10:09
两个4位BCD数码相加,被加数和加数分别存于30H,31H和40H,41H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数放在50H、51H、52H中(52H用于存放最高的进位),试编程加法程序。
我要详细的解说过程。谢谢了!!!!!!!!!

CLR C
MOV A,31H
ADD A,41H
MOV 51H,A
MOV A,30H
JC L1 ;判断低八位相加的进位标志,有进位跳转
ADDC A,40H ;没有进位直接加高八位
SJMP L2
L1:CLR C ;先清标志位(这样才不影响高八位的进位标志)
ADD A,40H
ADD A,#01H ;但是这里要多加个1,这样才能补上清除的标志位
L2:JNC L3
MOV 52H,#01H
L3:MOV 52H,#00H
END