Адрес |
Команда |
Мнемоника |
Комментарии |
L=000 |
041 |
LXIH |
; Загрузка начального адреса памяти |
001 |
200 |
В2 |
; мл.байт адреса |
002 |
000 |
В3 |
; ст.байт адреса |
003 |
001 |
LXIB |
; Запись исходных данных в регистры В и С |
004 |
001 |
В2 |
; B2 --> (C) |
005 |
010 |
В3 |
; B3 --> (B) |
006 |
160 |
МОV М,В |
; Запоминание (В) |
007 |
043 |
INX H |
; Формирование следующего адреса памяти |
010 |
161 |
МОV М,С |
; Запоминание (С) |
011 |
166 |
HLT |
; Останов |
Программа загружает данные в два регистра B и C. Для записи используется непосредственная адресация, то есть данные указаны в команде.
Затем содержимое регистра B записывается в ячейку памяти по адресу, ранее загруженному в регистровую пару HL. Значение регистра H увеличивается на единицу. Это означает, что регистровая пара HL теперь указывает на следующую ячейку памяти. По этому адресу записывается содержимое регистра C. Последняя команда HLT переводит процессор в состояние Останова.
Данная программа иллюстрирует способ контроля содержимого регистров. На стенде отсутствуют индикаторы содержимого регистров и поэтому для контроля значений РОН надо использовать память.
Программа 2
Программа позволяет извлечь из стека предварительно записанные данные, изменить их на единицу (используя операцию инкремента-декремента) и занести скорректированные данные снова в стек.
Адрес |
Команда |
Мнемоника |
Комментарии |
L=000 |
061 |
LXI SP |
; Загрузка начального адреса в указатель стека |
001 |
200 |
В2 |
; мл.байт адреса |
002 |
000 |
В3 |
; ст.байт адреса |
003 |
301 |
РОР В |
; Извлечение данных из стека и загрузка их в регистровую пару В и С |
004 |
004 |
INR B |
; Увеличение на 1 содержимого регистра В |
005 |
015 |
DCR C |
; Уменьшение на 1 содержимого регистра С |
006 |
305 |
PUSH B |
; Запоминание содержимого регистров В и С в стеке |
007 |
166 |
HLT |
; Останов |
Перед запуском программы в память по адресам 000200 и 000201 записываются значения 111 и 333 соответственно. В начале программы инициализируется указатель стека- регистровая пара SP значениями 200 и 000. Таким образом, SP=000200 и стек указывает на ячейку памяти, в которую предварительно было записано значение 111. По команде извлечение из стека в регистровую пару BC записываются значения из памяти по адресам SP и SP+1. В результате B=333, С=111, SP=000202. Следующими двумя командами содержимое B увеличивается на 1, а содержимое C уменьшается на 1. Затем полученные значения пересылаются обратно в стек, указатель стека SP=000200.
В результате работы программы в память помещаются следующие данные:
по адресу 000200 значение 110, по адресу 000201 значение 334.
Следует отметить необходимость предварительной инициализации указателя стека, так как при включение стенда он указывает на случайную ячейку памяти.
Программа 3
Программа реализует суммирование содержимого аккумулятора с содержимым ячейки памяти.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.