Требования к знаниям и умениям учащихся. В результате выполнения лабораторной работы учащиеся должны знать:

В результате выполнения лабораторной работы учащиеся должны знать:

– систему команд МП Intel 8085A (K1821BM85A);

– особенности арифметических команд;

 

Должны уметь:

– составлять программы для простых восьмиразрядных МП на языке Ассемблер, содержащие арифметические команды;

– выполнять ввод, отладку и выполнение программ на симуляторе МП Sim8085 Microprocessor Simulator.

Методические указания

Теоретическое обоснование

В микропроцессоре Intel 8085A предусмотрены следующие команды двоичной арифметики:

1) сложение восьмиразрядных чисел;

2) сложение 16-разрядных чисел;

3) вычитание восьмиразрядных чисел;

4) инкремент;

5) декремент.

Все арифметические операции с восьмиразрядными операндами предполагают, что один из операндов размещается в регистре-аккумуляторе, а другой – либо в регистре, либо в памяти (при этом адрес ячейки задается в регистровой паре HL), либо является непосредственным числом, заданным в самой команде. Вычитание производится всегда из регистра-аккумулятора. Результат арифметической операции пересылается в регистр-аккумулятор. Кроме того по результату арифметических операций сложения и вычитания устанавливаются биты признаков: S – знака, Z – нуля, A – вспомогательного переноса, P – четности, С – переноса.

Команды сложения 16-разрядных чисел, так называемые команды двойного сложения, предусматривают, что один из операндов находится в регистровой паре HL, а второй – либо в DE, либо в BC. Результат записывается в HL. Кроме того по результату операции устанавливается либо сбрасывается бит переноса – C.

Команды инкремента увеличивают содержимое регистров, ячейки памяти по адресу в HL и регистровых пар на 1. Команда инкремент регистра и памяти изменяет биты признаков: Z, S, A, P, C. Инкремент регистровой пары не затрагивает биты признаков.

Команды декремента уменьшают содержимое регистров, ячейки памяти по адресу в HL и регистровых пар на 1. Затрагиваемые биты признаков аналогичны команде инкремента.

 

Индивидуальное задание № 14. 1

Составить алгоритм, написать на языке Ассемблер для МП
Intel 8085A с адреса 2000 h и выполнить линейную программу, реализующую последовательность арифметических операций в соответствии с заданным вариантом (таблица 14.1):

 

M2 = (M1) + (E) – (A) + 1

 

До выполнения программы вычислить и записать в отчет ожидаемый результат (см. пример в методических указаниях к лабораторной работе №12).

При загрузке исходных данных в ячейку памяти М1 (в команде указывать М) по адресу 2022 h рекомендуется использовать косвенную адресацию, а при загрузке результата в ячейку памяти М2 по адресу 2024 h – прямую адресацию. Программу записать в таблицу, аналогичную по форме таблице 12.4.

 

Таблица 14.1 – Исходные данные к индивидуальному заданию № 14.1

 

Номер варианта Исходные данные Номер варианта Исходные данные
(M1) (E) (A) (M1) (E) (A)
1A B5 A1 4C
2A B4 1A B2 5E
3B E1 2B C4 2F 3E
0A F7 4C BF 4D 7D
3C B4 BE 3A 5B
4D FE DC 4B 6A
3A D5 7A A7 8F 4B
Примечания 1 «M1» - ячейка памяти по адресу 2022 h. 2 «M2» - ячейка памяти по адресу 2024 h.

 

 

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

 

Таблица 14.2 – Результаты выполнения индивидуального задания № 14.1

 

Номер варианта Результат (Р = 16) Содержимое регистров (P = 16) Значения признаков
(М2) (A) (B) (C) (D) (E) (H) (L) (SP) (PC) S Z A P C
                               

 

Индивидуальное задание № 14. 2

Составить алгоритм, написать на языке Ассемблер для МП Intel 8085A с адреса 2000 h и выполнить линейную программу заполнения массива памяти 2020 h …2024 h данными соответственно 0A h…0E h, используя команды загрузки и инкремента регистра и пары регистров (MVI r, b2; LXI rp, b3, b2; INR r; INX rp), f также пересылки (MOV M, r). Программу записать в таблицу, аналогичную по форме таблице 12.4.

Результаты выполнения записать в таблицу 14.3 и сделать выводы.

 

Таблица 14.3 – Результаты выполнения индивидуального задания № 14.2

 

Результат – содержимое ЯП по адресу 2020 h…2024 h (P = 16) Содержимое регистров (P = 16) Значения признаков
(M1) (M2) (M3) (M4) (M5) (A) (B) (C) (D) (E) (H) (L) (SP) (PC) S Z A P C
                                     

 

Индивидуальное задание № 14. 3

Составить алгоритм, написать на языке Ассемблер для МП Intel 8085A с адреса 2000 h и выполнить циклическую программу суммирования пяти чисел, находящихся в памяти в соответствии с индивидуальным заданием № 2. Счетчик циклов организовать на регистре B. Результат суммирования загрузить в регистр D. Программу записать в таблицу, аналогичную по форме таблице 12.4.

До выполнения программы вычислить и записать в отчет ожидаемый результат суммирования (см. пример в методических указаниях к лабораторной работе № 12).

Результаты выполнения записать в таблицу 14.4 и сделать выводы.

 

Таблица 14.4 – Результаты выполнения индивидуального задания № 14.3

 

Результат (P = 16) Содержимое ЯП по адресу 2020 h…2024 h (P = 16) Содержимое регистров (P = 16) Значения признаков
(D) (M1) (M2) (M3) (M4) (M5) (A) (B) (H) (L) (PC) S Z A P C
                               

 

 

ЛАБОРАТОРНАЯ РАБОТА № 15
ЛОГИЧЕСКИЕ КОМАНДЫ И КОМАНДЫ СДВИГА

Цель работы

1 Изучить приемы составления программ на языке Ассемблер для МП Intel 8085A (K1821BM85A), содержащих логические команды и команды сдвига.

2 Приобрести практические навыки ввода, отладки и выполнения программ на языке Ассемблер, содержащих логические команды, на симуляторе МП Sim8085 Microprocessor Simulator.