Подготовка к выполнению работы. 1 Повторить по [1] логические команды и команды сдвига

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

2 Изучить методические указания к данной лабораторной работе и составить программы для заданий № 15.1…15.3. Подготовить заготовку отчета (см. содержание отчета).

3 Подготовить ответы на вопросы для самоконтроля.

 

Вопросы для самоконтроля

1 Укажите, какие логические операции может выполнить МП Intel 8085A?

2 Укажите, где размещаются операнды и куда пересылается результат операции при выполнении команд логического сложения, логического умножения, сложения по модулю два и инверсии?

3 Укажите выполняемую операцию, формат, число машинных циклов и поясните, какие действия выполняет МП в каждом цикле для нижеуказанных команд:

а) ANA C; б) ORA D; в) ANI 30 h; г) XRI 30 h.

4 Укажите типы команд сравнения и поясните, как они выполняются.

5 Укажите типы команд сдвига.

6 Поясните разницу между командами RRC и RAR.

 

Приборы, оборудование и документация

5 Персональный компьютер (ПК).

6 Программный пакет «Sim8085 Microprocessor Simulator».

7 Методические указания к лабораторной работе.

8 Система команд МП Intel 8085A.

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

1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса и инструктаж по технике безопасности.

2 Произвести внешний осмотр ПК и убедиться визуально в отсутствии каких-либо повреждений и дефектов.

3 Включить ПК и запустить программу Sim8085.

4 Выполнить индивидуальные задания № 15.1...15.3. Для этого следует выполнить ввод, отладку и выполнение составленных программ аналогично пунктам 4.1…4.3 методических указаний к лабораторной работе № 13. Методические указания и исходные данные к индивидуальным заданиям
№ 15.1…15.3 приведены в методических указаниях к данной лабораторной работе.

5 После проверки преподавателем результатов выполнения индивидуальных заданий № 15.1…15.3 свернуть окно отладчика симулятора, закрыть программу Sim8085 и завершить работу ПК.

6 Ответить на контрольные вопросы.

7 Оформить отчет и сдать зачет.

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

1 Наименование и цель лабораторной работы.

2 Условия в виде текста и таблиц, алгоритмы и листинги программ к индивидуальным заданиям № 15.1…15.3 в виде таблиц.

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

 

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

1 Поясните, как с помощью команды сдвига умножить либо разделить некоторое число на 8?

2 Укажите, с помощью какой логической команды и как можно выделить некоторые разряды числа?

3 Укажите, когда устанавливаются признаки Z, C, P, S при выполнении команды сравнения?

4 Поясните, с помощью какой команды можно получить инверсию содержимого регистра D.

Требования к знаниям и умениям учащихся

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

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

- особенности логических команд и команд сдвига.

 

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

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

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

 

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

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

Логические команды

Для реализации логических операций в системе команд микропроцессора Intel 8085A предусмотрены следующие логические команды:

1) логическое сложение;

2) логическое умножение;

3) исключающее ИЛИ;

4) инверсия.

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

Команды логического сложения реализуют логическую операцию ИЛИ. Результат равен 1, если хотя бы один из соответствующих битов равен единице, и равен 0, если оба равны нулю. Например:

 

1 0 1 0 1 0 0 1  
Ú  
0 0 1 1 0 0 1 0  
1 0 1 1 1 0 1 1,  

где « Ú » - обозначение логической операции ИЛИ.

Команды логического умножения реализуют логическую операцию И. Результат равен 1, если оба соответствующие бита равны 1, и равен 0, если один из них равен 0. Например:

  1 0 1 0 1 0 0 1 Ù
Ù
  0 1 1 0 0 1 0 0
  0 0 1 0 0 0 0 0,

где « Ù » - обозначение логической операции И.

Команды исключающего ИЛИ реализуют логическую операцию ИСКЛЮЧАЮЩЕЕ ИЛИ или называемую по другому СЛОЖЕНИЕ ПО МОДУЛЮ ДВА. Результат равен 1, если соответствующие биты противоположны (1 и 0), и равен 0, если они одинаковы (1 и 1; 0 и 0). Например:

  1 0 1 0 1 0 0 1 Å
Å
  0 0 1 1 0 0 1 0
  1 0 0 1 1 0 1 1,

где « Å » - обозначение логической операции ИСКЛЮЧАЮЩЕЕ ИЛИ.

Команды инверсии реализуют операцию ОТРИЦАНИЕ содержимого только регистра0аккумулятора. Например:

 

(А) = 1 0 1 0 1 0 0 1
(A̅) = 0 1 0 1 0 1 1 0.

Команды сравнения

Система команд микропроцессора Intel 8085A содержит три этапа команд сравнения:

- сравнение содержимого аккумулятора с содержимым регистра: А, В, С, D, E, H или L;

- сравнение содержимого аккумулятора с ячейкой памяти по адресу в HL;

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

Команды сравнения выполняются посредством внутреннего вычитания из содержимого аккумулятора А, соответственно, содержимого регистра, ячейки памяти либо непосредственно операнда. Содержимое аккумулятора при этом не изменяется. В результате сравнения устанавливаются биты признаков следующим образом (таблица 15.1):

 

Таблица 15.1 – Значение битов признаков в зависимости от результата сравнения

 

Результат сравнения Признак
Z C
Равно
Больше
Меньше

 

Бит четности P устанавливается по результату внутреннего вычитания и, соответственно, равен 1, если количество единиц в результате четно, и равен 0, если количество нечетно.

Бит знака S устанавливается равным значению старшего разряда результата вычитания.

 

Команды сдвига

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

1) циклический сдвиг влево;

2) циклический сдвиг вправо;

3) сдвиг влево через перенос;

4) сдвиг вправо через перенос.

Команды сдвига выполняются в регистре-аккумуляторе A над восьмиразрядными операндами. Результат посылается в регистр-аккумулятор.

Команда циклического сдвига влево перемещает каждый бит байта на один разряд влево. При этом содержимое старшего разряда пересылается в бит переноса. Используя эту команду можно, реализовать операцию умножения на число, кратное 2.

Команда сдвига вправо через перенос перемещает содержимое каждого бита байта влево на один разряд. При этом содержимое бита переноса записывается в младший разряд, а содержимое старшего разряда пересылается в бит переноса. Используя эту команду, можно реализовать операцию умножения на число, кратное 2.

Команда сдвига вправо через перенос перемещает содержимое каждого разряда байта вправо на один разряд. При этом в старший разряд байта записывается значение бита переноса, а в него заносится содержимое младшего разряда байта. Используя эту команду, модно реализовать операцию деления на число, кратное 2.

 

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

Составить алгоритм, написать на языке Ассемблер для МП Intel 8085A с адреса 2000 h и выполнить линейную программу, реализующую последовательность логических операций M2 = (C) Ù (D̅) Ú (A) Ù (M1)в соответствии с заданным вариантом (таблица 15.2).

 

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

 

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

 

Выделить младшую тетраду результата (команда ANI OF h) и поместить ее в старшую тетраду регистра-аккумулятора А, полученное число записать в ячейку памяти M2 (в команде указывать М). При загрузке ячейки памяти M1 (в команде указывать М) использовать косвенную адресацию, а при загрузке результата в ячейку памяти М2 – прямую. Программу записать в таблицу, аналогичную по форме таблице 12.4.

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

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

 

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

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

 

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

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

 

A = (C) Å (D̅)

Если полученный результат больше или равен AA h, то выделить старшую тетраду и загрузить полученное значение в ЯП М1 по адресу 2023 h. Если же результат меньше AA h, то выделить младшую тетраду и загрузить полученное значение в ЯП М2 по адресу 2025 h. Для реализации разветвления алгоритма использовать команду условного перехода по содержимому триггера переноса Tc в соответствии с таблицей 15.1. Программу записать в таблицу, аналогичную по форме таблице 12.4.

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

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

 

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

 

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

 

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

 

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

 

C = (B) : 4

 

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

 

Номер варианта Исходные данные (P = 16) Номер варианта Исходные данные (P = 16)
(B) (B)
1, 3, 5, 7 9, 11, 13
2, 4, 6 1C 8, 10, 12, 14

 

Программу записать в таблицу, аналогичную по форме таблице 12.4.

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

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

 

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

 

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

 

ЛАБОРАТОРНАЯ РАБОТА № 16
КОМАНДЫ УПРАВЛЕНИЯ

Цель работы

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

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