两个4位BCD码数相加,被加数和加数分别存于30H、31H和40H、41H单元中(次序为千位、百位在低地址中,十位、个位在高地址中),和数放在50H、51H、52H中(52H用于存放最高位的进位),试编写加法程序。
正确答案:
O.RG 00H
M.OV 30H, #12H ;
M.OV 31H, #34H ;
M.OV 40H, #56H ;
M.OV 41H, #78H ;
M.OV A, 31H ; 取被加数十个位
A.DD A, 41H ; 相加,(A) = (31H) + (41H)
D.A A ; 十进制调整
M.OV 51H,A ; 存十位个位运算结果
M.OV A, 30H ; 取被加数千百位
A.DDC A, 40H ; 相加,(A) = (30H) + (40H)
D.A A ; 十进制调整
M.OV 50H,A ; 存千位百位运算结果
C.LR A ; 清A
A.DDC A,#0 ; 将进位加到A中
M.OV 52H, A ; 存进位
S.JMP $
M.OV 30H, #12H ;
M.OV 31H, #34H ;
M.OV 40H, #56H ;
M.OV 41H, #78H ;
M.OV A, 31H ; 取被加数十个位
A.DD A, 41H ; 相加,(A) = (31H) + (41H)
D.A A ; 十进制调整
M.OV 51H,A ; 存十位个位运算结果
M.OV A, 30H ; 取被加数千百位
A.DDC A, 40H ; 相加,(A) = (30H) + (40H)
D.A A ; 十进制调整
M.OV 50H,A ; 存千位百位运算结果
C.LR A ; 清A
A.DDC A,#0 ; 将进位加到A中
M.OV 52H, A ; 存进位
S.JMP $
答案解析:有
微信扫一扫手机做题