-3
 Programmcode | Zero-Flag | Sign-Flag | Register A | Register HL
              |     0     |     0     |     00h    |    00 00h
--------------|-----------|-----------|------------|------------
MOV HL, 00ffh |           |           |            |
DEC HL        |           |           |            |
ADD 81h       |           |           |            |
CP A          |           |           |            |
SUB 02h       |           |           |            |

我在 MC8-Assembler 中有一部分程序(MC8 的 CPU 由训练板的 8 位处理器 Zilog Z80 组成)执行后会有什么值标志,在寄存器中找到什么值?执行前的值在第一列中给出。

有人可以做+写解释吗?

4

1 回答 1

1

英特尔叫什么MOV,Zilog 叫什么LD;否则,您可以通过查看例如此说明表来找出答案。

MOV HL, 00ffhLD HL, 00ffhZilog 术语,因此请查找适当的LD HL. 它是指令 0x21,它告诉您它将值加载到 HL 中并且不会影响任何标志。所以这是第一行排序。DEC HL在 0x2b 结束也不会影响任何标志(这几乎总是让我注意到,为了记录)但是ADD A,*这样做是符号和零可能会改变的地方,这取决于你认为 A 会发生什么。

只需依次查看每条指令,看看它做了什么,做那件事,然后考虑如果这是一条影响标志的指令,标志将是什么。

于 2016-01-19T19:54:56.453 回答