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

Адрес

Команда

Мнемоника

Комментарии

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

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