【发布时间】:2018-05-07 19:54:55
【问题描述】:
据说在8085中减法是在2的补码中进行的,所以标志位必须根据运算来设置。 但是,在显示的图中,我无法弄清楚辅助进位标志设置为“0”的原因,进位标志也是如此。当我执行 2 的补码运算时,我发现进位 = 1(在 2 的补码中没有考虑到)并且我还发现 1 的进位从低半字节移动到高字节,所以我认为辅助进位是 1。但我发现只是对他们来说都是相反的。
【问题讨论】:
-
如何检测 AC 是否为 1?
据说在8085中减法是在2的补码中进行的,所以标志位必须根据运算来设置。 但是,在显示的图中,我无法弄清楚辅助进位标志设置为“0”的原因,进位标志也是如此。当我执行 2 的补码运算时,我发现进位 = 1(在 2 的补码中没有考虑到)并且我还发现 1 的进位从低半字节移动到高字节,所以我认为辅助进位是 1。但我发现只是对他们来说都是相反的。
【问题讨论】:
根据8085 manual here in page 118,应该设置操作。看起来 GNUSim8085 有一个错误。 GNUSim8085 有几个错误,其中一些在最新版本中已修复(包括带有 DAA 指令的错误),但看起来还有更多与辅助进位相关的错误。 Check here 获取我很久以前在 v1.3.7 中发现的错误列表
我建议在这里https://gsim85.soft112.com/ 使用gsim85,因为它似乎正确地实现了辅助进位操作。不过这可能有点难用。
另外,如果你不想要模拟器,但想要像 8085 训练套件这样的界面,请查看 Dirty8085,这是我大约 9 到 10 年前写的,最近修复了辅助进位更新。
【讨论】: