assembly - 8085 中的辅助进位和进位标志

标签 assembly 8085 carryflag

据说8085中的减法是以2的补码进行的,因此必须根据运算设置标志。 然而,如图所示,我无法弄清楚辅助进位标志被设置为“0”的原因,进位标志也是如此。当我执行2的补码操作时,我发现进位=1(在2的补码中没有考虑到)并且我还发现1的进位从低半字节转移到高半字节,所以我认为辅助进位是1。但我发现只是对他们俩来说正好相反。 enter image description here

与下面所示的第二种情况类似,我手动将进位设置为零,而进位标志设置为 1。 enter image description here

最佳答案

根据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/

相关文章:

c++ - 转储给定 C++ 行的汇编

c - 如何在 gcc asm 中添加一个计数器?

java - 如何检查为 8085 模拟器设置的标志

intel - hlt 期间程序计数器的状态

assembly - 关于进位标志的 ARM 文档的困惑

c - SPARC 程序集参数中的 printf 格式说明符?

c - 如何用c编译汇编语言

c++ - 设置进位标志的最快方法

c - 如何在 C 中使用 asm 添加两个 64 位数字时访问进位标志