Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР1 МПС.RTF
Скачиваний:
10
Добавлен:
17.02.2016
Размер:
228.71 Кб
Скачать

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

операций в программах.

Рассмотрим простейшую программу (прог.4.1.),извлекающую число из ячейки памяти по адресу 900Н,инвертирующую его и записывающее по адресу 901Н.

Программа 4.1.

Метка

Мнемоника

Операнд

Комментарии

LDA 0900H

загрузить число в аккумулятор из ОЗУ по адресу 0900Н

CMA

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

STA 0901H

записать содержимое аккумулятора в ОЗУ по адресу 0901Н

Для записи программы в память УМК необходимо перевести мнемоники Ассемблера в шестадцатиричный машинный код, по аналогии с табл.1.2. Таблица кодов микропроцессора КР580ВМ80А приведена в конце данного

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

Программы должны начинаться с адреса 800Н.

Рассмотрим программу, аналогичную прог.4.1. с использованием косвенного способа адресации.

Программа 4.2.

адрес

Метка

Мнемоника

Комментарии

LXI H,0900H

занести адрес ячейки в регистровую пару HL

MOV A,M

переслать число из ячейки памяти,

адрес которой в паре HL, в аккумулятор

CMA

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

INX H

увеличить содержимое пары HL на 1

MOV M,A

записать содержимое аккум. в ОЗУ по адресу в паре HL

Следующая программа производит сложение двух чисел. Одно из них находится в ОЗУ по адресу 900Н,другое в ОЗУ по адресу 901Н.Сумма записывается по адресу 902Н.

Прог.4.3.

адрес

Мнемоника

Комментарий

LDA 0900H

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

MOV B,A

пересылка содержимого аккумулятора в регистр В

LDA.0901H

загрузка второго числа в аккумулятор

ADD B

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

STA 0902H

сохранение результата в ОЗУ по

адресу 0902Н

В случае, если происходит сложение 2-х и более байтового числа, то при сложении старших байтов необходимо учитывать перенос из младших байтов (бит переноса С флагового регистра).Это же относится к операции нахождения разности многобайтовых чисел.

5.Задания для подготовки и лабораторной работе.

1.Ознакомиться с языком программирования Ассемблер и структурой команд микропроцессора КР580ВМ80А (i8080/8085).

2.Перевести в машинный код и распределить по адресам в ОЗУ программы 4.1.,4.2.,4.3. (аналогично таблице 1.2.).

3.Ввести в память УМК программу 4.1.Запустить ее на исполнение и исследовать результат выполнения программы. Результат выполнения представить в виде табл.5.1.

Табл.5.1.Результат выполнения программы.

Число по адресу 0900Н

число по адресу 0901Н

число по адресу 0902Н

Содержимое А

Состояние битов регистра F

S= Z= AC= P= C=

4.Проделать те же действия, что в пункте 3 с программами 4.2. и 4.3.

5.Написать программу, увеличивающую содержимое ячейки памяти по адресу 0900Н на 5Н и размещающую результат в ячейку памяти по адресу 0901Н.Произвести анализ выполнения программы, аналогично п.3.

6.Написать программу ,находящую разность 2-х чисел, одно из которых расположено в памяти по адресу 0900Н,а другое по адресу 0901Н (вычесть из первого второе).Результат нахождения разности записать по адресу 0902Н.Прозвести анализ выполнения программы (п.3).

7.Написать программу сложения двух двухбайтовых чисел, одно из которых расположено в памяти, начиная с адреса 0900Н,другое с адреса 0902Н.Результат разместить в памяти с адреса 0904Н.Перед выполнением программы записать по исходным адресам двухбайтовые числа, указанные преподавателем. Результат выполнения представить в виде таблицы, аналогичной табл.5.1.

8.Заменить в прог.4.3. команду сложения содержимого аккумулятора с регистром В (ADD B) командой сравнения CMP B. Ввести программу в память УМК. Записать в ячейку памяти по адресу 0900Н число большее, чем по адресу 0901Н.Запустить программу на выполнение. После выполнения проанализировать результат выполнения (составить табл.5.1.).

9.Записать по адресу 0900Н число меньшее, чем по адресу 0901Н.Произвести действия, описанные в п.8.

10.Записать по адресам 900Н и 901Н два одинаковые числа. Запустить программу на выполнение. Исследовать результат выполнения (п.8).

11.Заменить в программе 4.3. команду ADD B на команды INR A,DCR A,

ADD A, ANA A, ORA A, XRA A. Исследовать результат выполнения, содержимое

аккумулятора и флагового регистра F.

Результат представить в виде таблицы 5.2.

Табл.5.2.

Команда

Содержимое аккумулятора

Содержимое аккумулятора после операции

Содержимое битов

флагового регистра F

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]