Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Михайлов часть2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.56 Mб
Скачать

Задание 2. Изучение порядка записи и выполнения простых программ.

Программа записывается в последовательных ячейках памяти микро-ЭВМ. Для записи программы в память необходимо перевести мнемокоды команд в машинные коды , поскольку компилятора, автоматически осуществляющего перевод, микро-ЭВМ не имеет. При записи программ все числа представляются в шестнадцатеричной системе счисления. Например, в мнемокодах простейшая программа, которая извлекает число из памяти по адресу 0В00, инвертирует его и записывает результат в адрес памяти 0В01, имеет вид:

МНЕМОКОД

КОММЕНТАРИЙ

LDA 0b00

извлечь число из адреса 0b00

CMA

инвертировать число

STA 0b01

записать результат по адресу 0b01

RST1

прервать выполнение

Данная программа использует только один внутренний регистр – регистр А. В него записывается операнд перед выполнением операции; из него же считывается полученный результат.

Переводя программу в коды команд, следует иметь в виду, что команды в программе могут быть одно-, двух- и трехбайтовые занимают в памяти ЭВМ соответственно один, два или три адреса.

Вид исходной программы в машинных кодах:

АДРЕС

КОД КОМАНДЫ

КОММЕНТАРИЙ

0800

ЗА

команда LDA

0801

00

младший байт адреса

0802

0b

старший байт адреса

0803

2F

команда СМА

0804

32

команда STA

0805

01

младший байт адреса

0806

0b

старший байт адреса

0807

CF

команда RST1

Если сразу учитывать необходимое число ячеек памяти для каждой команды и указывать только начальный адрес каждой команды, то можно записать программу более компактно:

Программа 1.

АДРЕС

МАШИННЫЙ КОД

МНЕМОКОД

0800

ЗА 000b

LDA, 0B00

0803

2F

CMA

0804

32 0I0b

STA, 0B01

0807

CF

RST1

В этой программе использован прямой метод адресации. При косвенном методе адресации исходная программа имеет вид:

Программа 2.

АДРЕС

МАШИННЫЙ КОД

МНЕМОКОД

КОММЕНТАРИЙ

0800

21 000b

LXIH, 0B00

записать в регистры H,L адрес 0b00

0803

MOV A,M

получить операнд из адреса, указанного в регистрах H, L

0804

2F

СМА

инвертировать операнд в аккумуляторе

0805

23

INX M

увеличить на единицу адрес в регистрах H, L

0806

77

MOV M,A

записать результат из аккумулятора по адресу, указанному в H, L

0807

CF

RST1

прервать выполнение программы

Для выполнения команд, в которых имеется несколько операндов, используются аккумулятор и внутренние регистры МП. В качестве примера ниже приведена программа сложения двух чисел: одно из них заносится в ячейку памяти 0b00, другое – константа – заносится в регистр.

Программа 3.

АДРЕС

МАШИННЫЙ КОД

МНЕМОКОД

КОММЕНТАРИЙ

0800

21 000b

LX1H, 0B00

записать в регистры H, L адрес 0b00

0803

MОV A, M

получить операнд из адреса, указанного в регистрах H, L

0804

06

MVI B,10

загрузить регистра В константой, константа (число 10)

0806

80

ADD B

сложить регистра B с аккумулятором

0807

23

INX Н

увеличить на единицу адрес в регистрах H, L.

0808

77

MOV M,A

записать результат из аккумулятора по адресу, указанному в H, L

0809

CF

RST1

прервать выполнение программы

Порядок выполнения задания 2.

2.1. Внести в микро-ЭВМ программу 1. Записать по адресу 0b00 исследуемое число. Осуществить пуск программы с адреса 0800. Проверить результат, выводя число, записанное по адресу 0b01.

Примечание. Необходимо помнить, что число переписывается в память с дисплея после того, как клавишей ЗУв задан следующий адрес. Чтобы задать любой другой адрес, необходимо перейти в режим отыскания адреса – клавиша ОтА.

2.2. Ввести в микро-ЭВМ программу 2. Записать в ОЗУ по адресу 0b00 то же самое число (п.2.1) и запустить программу с адреса 0800. Сравнить результат, записанный по адресу 0b01 с результатом, полученным в п.2.1.

2.3. Последовательно заменяя в программе 2 команду СМА на команды:

INR A (ЗС) - увеличение на 1,

DCR A (3D) - уменьшение на 1,

RLC (07) - циклический сдвиг влево,

RRC (0F) - циклический сдвиг вправо

исследовать выполнение программы, вызывая результат из адреса 0b01.

2.4. Ввести в микро-ЭВМ программу 3. Записать в ОЗУ по адресу 0b00 любое исследуемое число. Осуществить пуск программы по адресу 0800. Проверить результат, выводя число, записанное по адресу 0b01.

2.5. Последовательно заменяя в программе 3 команду ADD на команду:

ANA B (А0) - логическое умножение А с регистром,

ORA B (b0) - логическое сложение регистра с А,

исследовать выполнение программы, вызывая результат из адреса 0b01.