Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫе занятия ОМПТ.doc
Скачиваний:
2
Добавлен:
09.11.2019
Размер:
701.95 Кб
Скачать

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

2.1. Перевести адрес памяти, мнемокоды команд в шестнадцатеричные коды.

2.2. Загрузить коды программы в память.

2.3. .Выполнить программу в шаговом режиме. После выполнения каждой команды анализировать содержимое ячеек памяти и РОНов, участвующих в выполнении данной команды, записать слово состояние при выполнении команд.

2.4. .Выполнить программу в динамическом режиме и сопоставить результаты.

Таблица 3.1

Адрес памяти

Мнемокод

Комментарий

800H

801H

802H

LDA

815

Загрузка в аккумулятор первого слагаемого из ячейки памяти с адресом 815

803H

804H

805H

LXI H,

848

Загрузка адреса второго слагаемого (848) в регистровую пару НL

806H

ADD M

Сложение содержимого аккумулятора со вторым слагаемым и запись результата в аккумулятор

807H

808H

809H

LXI H,

871

Загрузка адреса третьего слагаемого (871) в пару НL

80AH

ADD M

Сложение содержимого аккумулятора с третьим слагаемым

80BH

80CH

80DH

STA,

870

Запись суммы из аккумуляторов в ячейку памяти с адресом 870

80EH

HLT

Останов

3.Содержание отчета

3.1. Схема алгоритма

3.2. Листинг программы с кодами команд и комментариями

3.3. Состояние шин адреса, данных и состояния при пошаговом выполнении команд

3.4. Выводы

Контрольные вопросы

1. Перечислить группы команд

2. Перечислить команды пересылки, арифметико-логические команды

3. Почему для размещения команд в памяти отводится различное число ячеек?

Лабораторная работа 4

Программирование алгоритмов с циклической структурой

Цель работы: приобретение навыков программирования алгоритмов с циклической структурой.

1. Общие указания

Алгоритм циклической структуры — алгоритм, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий. Эту последовательность предписанных действий называют циклом. Циклический алгоритм позволяет существенно сократить объем программы.

Для организации цикла необходимо задать: начальное назначение параметра цикла — значение переменной, которая будет изменяться при повторяемых циклах; изменение значения параметра цикла перед каждым повторением цикла; проверку условия выхода из цикла и переход к началу цикла, если условие не выполнено. Для организации цикла в программе используются команды сравнения и логические: ANA, ANI, XRA, XRI, ORA, ORI, CMP, CPI.

Инкрементирование (декрементирование) данных в регистрах или ячейках памяти: INR, DCR, INX, DCX и команды условных переходов: JC, JNC, JZ, JNZ, JP, JRE, JRO.

Типовая блок-схема циклического алгоритма представлена на рис.4.1.

В блоке 1 устанавливается адрес счетчика команд начала программы. В блок 2 с помощью команды пересылки MUI устанавливается значение счетчика (количество повторений цикла). В блоке 3 помещается основная программа вычислительного процесса. В блоке 4 программируется увеличение (уменьшение) на единицу содержимого регистров, в которых хранятся адреса памяти переменных вычислительного процесса и счетчика циклов. В блоке 5 производится проверка равенства 0 счетчика циклов. Содержимое счетчика циклов проверяется с помощью любой из команд сравнения и по результатам сравнения программируется условный переход на начало цикла или окончание программы. В блоке 6 программируется конец программы с помощью команды END.

В качестве примера выполнения циклического алгоритма служит программа перезаписи «память — память» (табл. 4.1).

Программа выполняет переписывание информации из одной области памяти с начальным адресом NAM в другую с начальным адресом VAM. В область памяти с начальным адресом NAM предварительно вносится необходимая информация.

Рис.4.1.

Таблица 4.1

ORG

815H

;определение начала программы

MVI H,

CONST

;загрузить в Н значение счетчика

LXI B,

NAM

;загрузить в ВС начальный адрес исходной области памяти

LXI D,

VAM

;загрузить в DE начальный адрес выходной области памяти

MO:

LDAX B

;загрузить в аккумулятор байт данных из памяти, адрес который находиться в регистре ВС

STAX D

;переписать из аккумулятора информацию по адресу, находящемуся в DE

INX B

;увеличить содержимое ВС на единицу

INX D

;увеличить содержимое DЕ на единицу

DCR H

;уменьшить содержимое Н на единицу

JNZ M0

;переход, если не=0

END

;конец программы