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组成)执行后会有什么值,在寄存器中找到什么值?执行前的值在第一列中给出。
有人可以做+写一个解释吗?
答案 0 :(得分:1)
英特尔称之为MOV
,Zilog称之为LD
;否则你可以通过查看例如this instruction table
MOV HL, 00ffh
为LD HL, 00ffh
,因此请查找相应的LD HL
。它是0x21指令,它告诉你它将值加载到HL中并且不会影响任何标志。这是第一排排序。在0x2b处的DEC HL
也不会影响任何标志(对于记录而言几乎总是会抓住我),但是ADD A,*
这样做,那么标志和零可能会改变,这取决于你认为发生了什么甲
只要依次查看每条指令,看看它做了什么,做那件事,然后考虑如果这是一条影响标志的指令会有什么标志。