2016-01-16 3 views
-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 образован 8-битным процессором Zilog Z80 учебного совета). Какое значение будет иметь флаг после выполнения и whatvalue находится в регистре? Значения перед исполнением приведены в первом столбце.Как найти значение регистра и флагов в Assembler?

Может кто-нибудь это сделать + написать объяснение?

+1

что вы сделали до этого кроме этого вопрос? – kwarunek

ответ

1

Что звонит Intel MOV, Zilog звонит LD; в противном случае вы можете решить ответ, глядя на, например, this instruction table.

MOV HL, 00ffh является LD HL, 00ffh в терминах Zilog, поэтому найдите подходящий LD HL. Это инструкция 0x21, и она сообщает вам, что она загружает значение в HL и не влияет на какие-либо флаги. Итак, это сортировка строки. DEC HL на 0x2b также не влияет на какие-либо флаги (которые почти всегда меня вылавливают, для записи), но ADD A,* делает так, чтобы знак и ноль могли меняться, в зависимости от того, что, по вашему мнению, происходит с A.

Просто посмотрите в свою очередь, посмотрите, что он делает, сделайте это, затем подумайте, какие будут флаги, если это инструкция, которая влияет на флаги.