我在编写此代码时遇到问题。有人可以给我解决方案(我理解BCD号码等,我只是不能编写有效的代码)?
它应该添加两个打包的BCD编号(每个4位;它们位于地址OP1和OP2)并将结果放在地址RES中。
提前致谢:)
答案 0 :(得分:2)
我不会给你一个解决方案,而是一些指导。您需要将您的工作分成5个简单的阶段:
我认为每个阶段都相对容易实现,希望这可以帮助您自己解决。
答案 1 :(得分:2)
使用daa
(添加后的十进制调整),您可以直接添加它们,而无需通过二进制整数进行往返。
像这样(完全未经测试)
mov al, [OP1]
add al, [OP2]
daa
mov [RES], al
mov al, [OP1 + 1]
adc al, [OP2 + 1]
daa
mov [RES + 1], al