Исследование однокристального микропроцессора с фиксированным списком команд, страница 3

В результате в памяти по адресу H = 000, L = 200 записано 010, а по адресу L = 201 записано 001.

Результат выполнения команды HLT: выходы буферных регистров АДРЕС и ДАННЫЕ переводятся в состояние высокого сопротивления, в байте состояния формируется сигнал ПОСТ, свидетельствующий о переходе МП в состояние «Останов», на линии ожидания устанавливается единичный сигнал ОЖ и выполнение программы прекращается.

2.2. Программа 2: работа процессора при выполнении команд обращения к стеку

Предварительно в стек (ячейки памяти с адресами L = 200, L = 201) записаны числа 216 и 337 соответственно. Необходимо разработать программу, позволяющую извлечь данные, предварительно записанные в стек, изменить их на единицу и занести скорректированные данные снова  в стек.

Адрес

Код команды

Мнемоника команды

Комментарии

L = 000

001

002

061

200

000

LXI SP

B2

B3

инициализация указателя стека

SPL

SPH

003

301

POP B

извлечение данных из стека в регистровую пару В

004

004

INR B

увеличение содержимого регистра на 1

005

015

DCR C

уменьшение содержимого регистра на 1

006

305

PUSH B

загрузка модифицированных данных в стек

007

166

HLT

останов

В результате в памяти по адресу H = 000, L = 200 записано 215, а по адресу L = 201 записано 340.

При выполнении команды PUSH RP в ячейку памяти с адресом (SP – 1) записывается содержимое старшего регистра регистровой пары В, а в ячейку с адресом (SP – 2) – содержимое младшего регистра этой регистровой пары. Стек растет в область младших адресов, поэтому содержимое указателя стека уменьшается на 2.

При выполнении команды POP RP данные из вершины стека, адресуемой SP, передаются в младший регистр регистровой пары (С), а в старший регистр загружается содержимое ячейки (SP + 1). После этого содержимое SP увеличивается на 2.

2.3. Программа 3: суммирование содержимого аккумулятора с содержимым ячейки памяти

Предварительно ячейку памяти с адресом L = 200 записано число 215.

Адрес

Код команды

Мнемоника команды

L = 000

001

002

041

200

000

LXI H

B2

B3

003

004

076

010

MVI A

B2

005

206

ADD M

006

167

MOV M, A

007

166

HLT