Файл: В.В. Демьянов Изучение системы команд микропроцессора серии К580 на учебно-отладочной микроЭВМ.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.06.2024

Просмотров: 70

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

18

адресу 8402 (программа 4); сравнения чисел в адресах 8400 и 8401 и записи большего из них в регистр В (программа 5).

3. ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ

3.1. Исследовать программу 1

Ввести в микроЭВМ программу 1. Записать по адресу 8400 исследуемое число. Запустить программу 1 на исполнение. Проверить результат выполнения программы путем исследования числа, записанного по адресу 8401. Исследовать процесс выполнения программ по командам. После выполнения каждой команды проанализировать содержание всех программно-доступных регистров МП. Заменяя в програм-

ме 1 команды СМА на команды INRA(3C) , DCRA(3D), ADDA(87), ANAA(A7), ORAA(B7), CMPA(BF), DAA(27), исследовать результат выполнения команд по числу, записанному по адресу 8401. Проверить табл. 1, заполненную при выполнении домашнего задания.

3.2. Исследовать программу 2

Ввести в микроЭВМ программу 2. Записать по адресу 8400 исследуемое число. Запустить программу с адреса 8200. Проверить результат выполнения программы по числу, записанному по адресу 8401. Ввести и исследовать видоизмененную программу 2, позволяющую первоначально записывать исследуемое число по адресу 8000.

3.3. Исследовать программу 3

Ввести в микроЭВМ программу 3, разработанную при домашней подготовке. Запустить программу 3 и проверить результат ее выполнения по числу, записанному по адресу 8401, при числах 05, FE, записанных по адресу 8400.

3.4. Исследовать программу 4

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

18

19

ту, хранящемуся по адресу 8402, записывая по адресам 8400 и 8401 исходные числа, соответственно ОВ и ВО, а затем FE и B5. Видоизмените программу для случая, когда сумма двух чисел будет превышать восьмиразрядное число.

3.5. Исследовать программу 5

Ввести в микроЭВМ программу 5, разработанную при домашней подготовке. Записать по адресам 8400 и 8401 исследуемые числа. Осуществить пуск программы 5 и проверить результат ее выполнения по числу, записанному в регистре В.

4. РАБОТА НА УЧЕБНОЙ МИКРОЭВМ

При выполнении работы на учебной микроЭВМ надо иметь в виду следующие особенности:

1) ввод программы осуществляется путем ее последовательной записи в ячейки ОЗУ; начальный адрес программы устанавливается нажатием клавиши ADDR и набором адреса, после чего для записи в ячейки нажимается клавиша MEM; переход к следующей ячейке осуществляется при помощи клавиши NEXT;

2)для пуска программы необходимо после установки начального адреса программы клавишей ADDR включить тумблер в положение ПРОГОН и нажать клавишу RUN;

3)для пошагового выполнения программы тумблер переключить в положение ОТЛАДКА; при каждом нажатии на клавишу STEP будет выполняться очередная команда;

4)для просмотра программно-доступных регистров нажать клавишу REG и клавишу, соответствующую его обозначению (A, B, C, D, E, F, H, L).

5.СОДЕРЖАНИЕ ОТЧЕТА

Отчет должен содержать:

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

2) видоизмененную программу 2, позволяющую первоначально записывать исследуемое число по адресу 8000;

19



20

3) разработанные программы 3, 4 и 5 и результаты их исследования.

6. КОНТРОЛЬНЫЕ ВОПРОСЫ

1. В чем отличие машинного цикла от машинного такта?

2.Сколько машинных циклов и тактов может длиться выполнение одно-, двух- и трехбайтной команды?

3.Какие типы машинных циклов вам известны?

4.Какие группы систем команд МП К580ВМ80 вы знаете?

5.Перечислите и запишите мнемонику команды пересылки и загрузки, команд обработки данных?

6.Какие команды обработки данных не меняют содержание регистра признаков, какие меняют только признаки Z и CY?

7.Какие способы адресации вам известны? В чем их сущность?

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

ОРГАНИЗАЦИЯ УСЛОВНЫХ ПЕРЕХОДОВ, ПОДПРОГРАММ И СТЕКА, МАСКИРОВАНИЕ ДАННЫХ

ЦЕЛЬ РАБОТЫ: исследование организации условных переходов, особенностей записи и обращения к подпрограммам, методов использования стека при создании программ, программных способов маскирования данных.

1. КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ

Организация условных переходов в микроЭВМ осуществляется с помощью регистра признаков МП. В МП К580ВМ80 используется 5 признаков, каждый из которых устанавливается по определенному правилу в соответствии с выполнением МП последней команды.

Признаки часто используют для вызова подпрограмм и выхода из них.

Во многих случаях при выполнении программ необходимо проверять или изменять (маскировать) состояние одного или нескольких раз-

20

21

рядов числа в аккумуляторе. Это можно осуществить с помощью следующих операций:

1) логического умножения числа в аккумуляторе и маски, которое очищает разряд числа, если в соответствующем разряде маски будет записан 0, и не изменяет его, если в разряде маски записана 1;

2)логического сложения числа в аккумуляторе и маски, которое устанавливает разряд числа в 1, если в таком же разряде маски будет записана 1, и не изменяет его, если в этом разряде записан 0;

3)логического “исключающее ИЛИ” числа в аккумуляторе и маски, которое инвертирует содержание разряда числа, если в соответствующем разряде маски записана 1, и не изменяет его, если в этом разряде записан 0.

Проведение логических операций возможно также с содержимым аккумулятора и регистрами МП. При выполнении всех логических команд задействуются разряды Z, S, Р, АС регистра признаков (в разряд СY записывается 0). Это позволяет проверять состояние любого разряда числа и выполнять условные переходы в программах.

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

Ниже приведена программа (программа 1) для определения 1 в пятом разряде числа аккумулятора и занесения числа FF в десять ячеек памяти или записи в них 1, если этот разряд числа аккумулятора равен

0.

Программа 1

Адрес

 

Код

Метка

Мнемокод

Комментарий

 

команды

 

 

 

 

 

 

8200

06

0A

 

MVI B, 0A

Занести число 10 в ре-

 

 

 

 

 

гистр B

 

 

 

8202

11

0084

 

LXI D 8400

Занести

адрес

первой

 

 

 

 

 

ячейки памяти

(8400) в

 

 

 

 

 

пару DE

 

 

 

8205

E6 10

 

ANI 10

Проверка

на

1

пятого

 

 

 

 

 

разряда в аккумуляторе

21


22

 

 

 

 

Продолжение программы 1

Адрес

Код

Метка

Мнемокод

Комментарий

 

команды

 

 

 

 

8207

CA OF 82

 

JZ M1

Если в пятом разряде 0,

 

 

 

 

идти к M1

 

820A

3E FF

 

MVI A, FF

Занести FF в аккумулятор

820C

C3 1182

 

JMP M2

Идти к M2

 

820F

3E 01

M1

MVIA, 01

Занести 1 в аккумулятор

8211

12

M2

STAX D

Занести содержимое ак-

 

 

 

 

кумулятора по адресу ре-

 

 

 

 

гистров DE

 

8212

13

 

INХ D

Увеличить на 1 содержи-

 

 

 

 

мое DE

 

8213

05

 

DCR B

Уменьшить на 1 содер-

 

 

 

 

жимое B

 

8214

C2 1182

 

JNZ M2

Если B≠ 0, идти к M2

8217

E7

 

RST4

Окончить

выполнение

 

 

 

 

программы

 

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

Для вызова подпрограммы и возврата из них используют команды

CALL (A2) (A1) и RET. Команда CALL (А2)(А1) загружает в про-

граммный счетчик МП содержимое двух байтов, записанных в последующих адресах памяти после адреса, где записан код команды CALL. Содержимое байта (А2) записывается в младший байт программного счетчика РС, а третий байт (А1) команды - в старший байт РС. При этом МП автоматически сохраняет в стеке адрес основной программы, к которой произойдет обращение после выполнения подпрограммы.

22


23

Стек - специально организованная область ОЗУ, задействованная в микроЭВМ для временного хранения данных или адресов. Число, записанное в стек последним, извлекается из него первым.

Команда RET помещает в программный счетчик РС последнее записанное в данный момент в стеке число. После этого выполнение программы произойдет с этого адреса. Любая подпрограмма должна заканчиваться командой RET.

Автоматическое сохранение и восстановление адреса основной программы при выполнении подпрограмм позволяют сделать подпрограммы вложенными, т.е. осуществить вызов одной подпрограммы из другой. Уровень вложенности для данной микроЭВМ определяется лишь размером стека.

Помимо команд CALL и RET можно обмениваться информацией со стеком с помощью команд PUSH(R) и POP(R). Эти команды являются однобайтными и в них содержится указание на пару регистров МП. Кроме регистров общего назначения в стек можно загрузить содержимое счетчика РС, а также аккумулятора и регистра признаков, к которым обращаются как к регистровой паре PSW.

По команде PUSH(R) содержимое регистровой пары заносится в стек, при этом по адресу SP-1 заносится содержимое старшего регистра, а по адресу SP-2 - содержимое младшего регистра. Содержимое указателя вершины стека SР уменьшается на 2.

По команде РОР(R) содержимое адреса SP заносится в младший регистр, а содержимое адреса SP+1 - в старший регистр пары. Содержимое указателя вершины стека SР увеличивается на 2.

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

При разработке программ необходимо первоначально назначать область стека, записывая в SP адрес с помощью команды LXI SP (A2)(A1) или команды SPHL. Все операции со стеком должны быть сбалансированы, т.е. каждая программа должна содержать равное количество команд PUSH(R) и POP(R) и оканчиваться командой RET, в противном случае выполнение команды RET приведет к записи в программный счетчик случайного числа из стека, адрес возврата в основную программу будет потерян, нарушится порядок ее выполнения.

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

23

24

программе. В конце подпрограммы восстанавливают содержание этих регистров в обратной последовательности по отношению к их записи в стек.

Алгоритм простой программы выдержки времени приведен на рис.3.

Общее время выдержки вычисляется по формуле. TD = T1+(T2+T3+T4) N1 + T5,

где N1 - число, первоначально записанное в счетчике.

В качестве счетчика выбран регистр В, в который записывается число N1 из регистра С. Команда NOP нужна для увеличения времени выполнения цикла, а следовательно, и общей задержки. Вместо NOP может быть записана любая последовательность команд, выполнение которых не изменяет содержимое регистров В и С микропроцессора.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассмотрим пример использо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вания

подпрограммы

выдержки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

времени для организации мигания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

правого

разряда дисплея

учебной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

микроЭВМ.

Особенность

схемы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

микроЭВМ такова, что на дисплей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

путем использования прямого дос-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ние ячеек с адресами 83F883FF,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

причем

правому

разряду

дисплея

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

соответствует

ячейка

83FF.

При

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

записи в ячейку 83FF нуля все сег-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

менты индикатора будут погаше-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ны, а при записи числа FF - все

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сегменты будут гореть. Ориенти-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ровочная

длительность выдержки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

времени

должна

составить

0,5с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(программа 2). Организуем 10 пе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

риодов

мигания.

Подпрограмма

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выдержки

времени

имеет

имя

Рис. 3. Алгоритм подпрограммы

DLIT. Счетчики расположены в ре-

 

 

выдержки времени

гистрах В и С.

 

 

 

 

24