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

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

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

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

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

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

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

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


person krzyhub    schedule 22.05.2013    source источник
comment
Я не понимаю, как вы можете иметь MVI по адресу 4000, а другой по адресу 4001, учитывая, что размер каждого MVI составляет два байта.   -  person Michael    schedule 22.05.2013
comment
Хорошо, но после исправления проблема все еще не решена :/   -  person krzyhub    schedule 22.05.2013
comment
Панель памяти справа, кажется, показывает адреса 0x4010 вверх?   -  person Martin James    schedule 22.05.2013
comment
Адресная ячейка в верхнем левом углу — ML:4010. Имеет ли это какое-то значение в данном случае?   -  person krzyhub    schedule 22.05.2013


Ответы (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

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

3E 03 06 04 80 76

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

person raj raj    schedule 23.05.2013
comment
MVI A 03 является примером рабочего синтаксиса. Спасибо за подсказку :) - person krzyhub; 24.05.2013

Результат

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

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

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

person lurker    schedule 22.05.2013
comment
Я так и думал, но 8085 Simulator остался с нетронутыми регистрами A и B после завершения кода. Я этого не понимаю. Не могли бы вы взглянуть на прикрепленное изображение и сказать мне, что там не так, пожалуйста? - person krzyhub; 22.05.2013