Где результат сложения? Intel 8080

Я не могу понять поведение обработки кода для Intel 8080. Например, я хочу добавить два шестнадцатеричных числа: 3H и 4H, поэтому я написал:

MVI A, 3H
MVI B, 4H
ADD B
HLT

Но где я могу найти результат после обработки? Должен ли я скопировать результат из A в какой-нибудь адрес памяти или как? Извините, но я впервые с такими вещами, и я не могу понять, как это работает.

И, например, картинка, показывающая мой пример в симуляторе 8085.

Другой вопрос, почему некоторые флаги изменились, но регистры остались нетронутыми? не должны MVI B, 4H изменить значение B-регистра? Если нет, пожалуйста, объясните, как это работает.

После предоставления 2 байтов для каждой инструкции аккумулятор также остался без результата.

И кажется, что единственная инструкция, которая может повлиять на аккумулятор или любой другой реестр - это INR. Возможно ли, что "мой" симулятор имеет дефект и не работает должным образом?

2 ответа

Решение

Как видно из скриншотов, вы неправильно вводите код. Ваш окончательный код должен быть таким:

MVI A, 3H       ->   3E 03
MVI B, 4H       ->   06 04
ADD B           ->   80
HLT             ->   76

Я не использовал этот симулятор, но я полагаю, что вы вводите неправильную мнемонику. Я думаю, что это должно быть как:

Address    Mnemonics   M Code
Address1:  MVI A       3E
Address2:  3           03
Address3:  MVI B       06
Address4:  4           04
Address5:  ADD B       80
Address6:  HLT         76

И не как

Address1: MVI A, 3
Address2: MVI B, 4
Address3: ADD B
Address4: HLT

(это ясно, если мы видим столбец М. Код, где MVI A, 3 а также MVI B, 4 не имеет никаких кодов операций) Тогда только вы получите код, предназначенный для:

3E 03 06 04 80 76

То, что вы на самом деле бежали до сих пор NOP операции (значение кода операции 00) а также HLT,:-)

Результат

MVI A, 3H
MVI B, 4H
ADD B

Будет иметь результат в регистре А.

Результат MVI B, 4H будет 4H в регистре B.

Другие вопросы по тегам