Файл: В.В. Демьянов Изучение системы команд микропроцессора серии К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