据说8085中的减法是以2的补码进行的,因此必须根据运算设置标志。 然而,如图所示,我无法弄清楚辅助进位标志被设置为“0”的原因,进位标志也是如此。当我执行2的补码操作时,我发现进位=1(在2的补码中没有考虑到)并且我还发现1的进位从低半字节转移到高半字节,所以我认为辅助进位是1。但我发现只是对他们俩来说正好相反。
最佳答案
根据8085 manual在第 118 页,应设置操作。看起来 GNUSim8085 有一个错误。 GNUSim8085有几个Bug,其中一些在最新版本中得到了修复(包括DAA指令的Bug),但看起来还有更多与辅助进位相关的Bug。 Check here查看我很久以前在 v1.3.7 中发现的错误列表
我建议在这里使用gsim85 https://gsim85.soft112.com/ ,因为这似乎已经正确实现了辅助进位操作。不过,这可能有点难以使用。
此外,如果您不需要模拟器,但想要像 8085 培训套件这样的界面,请查看 Dirty8085 ,这是我大约9~10年前写的,最近修复了辅助携带更新。
关于assembly - 8085 中的辅助进位和进位标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50221505/