非常抱歉这个问题似乎很小,但我似乎找不到答案 - 我正要在我的Z80模拟器中实现DAA指令,并且我注意到在Zilog手册中,它旨在调整累加器进行二进制编码的十进制算术运算。它说该指令旨在在加法或减法指令之后立即运行。
我的问题是:
- 如果在其他指令之后运行该指令会发生什么?
- 它如何知道先前运行的是哪个指令?
- 我知道有N标志 - 但这肯定不会明确表示之前的指令是加法还是减法指令吧?
- 它是否基于DAA表中列出的条件,无论先前的指令如何,都会修改累加器?
很抱歉,这个看起来似乎很小的问题,但是我却找不到答案 - 我将要在我的Z80模拟器中实现DAA指令,在Zilog手册中我注意到其目的是为了进行二进制编码的十进制算术运算而调整寄存器的值,该指令旨在在加法或减法指令之后立即运行。
我的问题如下:
- 如果在其他指令之后运行该指令会发生什么?
- 它如何知道先前运行的是哪个指令?
- 我明白有N标志,但它是否能够明确表示之前的指令是加法还是减法指令?
- 无论先前的指令是什么,它是否仍然会根据DAA表中的条件修改寄存器的值?