МУ_ЛР_АВС_220411
.pdfПОДРАЗУМЕВАЕМАЯ АДРЕСАЦИЯ
Адрес операнда явно не содержится в адресной части кода команды, но подразумевается в содержании соответствующей операции либо один и тот же адрес используется для операнда и результата операции. Например, в описании арифметических и логических команд указано, что адресации. Схемы на рис. 7 поясняют способы определения операндов при различных методах адресации.один из операндов и результат операции находятся в аккумуляторе. Команды обращения к стеку используют содержимое одного из управляющих регистров – указателя стека.
Подразумеваемая адресация используется с целью сокращения длины кода команды и упрощения процесса выполнения команд в процессоре.
ПРЯМАЯ РЕГИСТРОВАЯ АДРЕСАЦИЯ
В адресной части кода команды указывается РОН (или регистровая пара), в котором находится операнд.
Прямая регистровая адресация не требует обращения к памяти, поэтому команда выполняется за минимальное время. Кроме того, для указания регистра требуется короткое поле в коде команды (в КР580 – 3 бита), тогда как для указания адреса памяти требуется 16 бит.
Примеры:
MO |
Содержимое регистра Н пересылается в регистр В. |
V B,H |
|
DA |
К содержимому пары HL прибавляется содержимое пары DE |
D D |
(пара HL подразумевается, а пара DE определена явно). |
ABC |
К содержимому аккумулятора прибавляется содержимое ре- |
H |
гистра H и фланга переноса CF (регистр H определен явно, а ак- |
|
кумулятор и фланг переноса подразумеваются). |
ПРЯМАЯ АДРЕСАЦИЯ
Вадресной части кода команды содержится адрес операнда. Код команды с прямой адресацией занимает в памяти три последовательных байта:
- код операции; - младший байт адреса;
- старший байт адреса.
Вмнемонической записи кодов команд адреса записываются обычным порядком: сначала старшие разряды, потом – младшие.
31
Примеры:
LDA |
Содержимое ячейки памяти с адресом 2314 пересылается в |
2314 |
аккумулятор. |
JMP |
Адрес ячейки с символическим именем CONT пересылается |
CONT |
в программный счетчик МП, следовательно, управление будет пе- |
|
редано по адресу CONT. |
КОСВЕННАЯ РЕГИСТРОВАЯ АДРЕСАЦИЯ
В адресной части кода команды указывается регистровая пара, в которой содержится адрес операнда.
Косвенная адресация удобна при работе с массивами, а также необходима в тех случаях, когда адрес операнда является результатом различных преобразований. Наиболее часто для косвенной адресации используется пара HL. При символической записи кодов команд символом M (от MEMORY – память) обозначают ячейку памяти, адрес которой содержится в регистровой паре HL.
Примеры:
MO Содержимое регистра C пересылается по адресу, находяще- V M,C муся в паре HL.
AD К содержимому аккумулятора прибавляется содержимое D M ячейки памяти с адресом, находящимся в паре HL; результат оста-
ется в аккумуляторе.
STA Байт из аккумулятора записывается в память по адресу, со- X B держащемуся в паре BC.
НЕПОСРЕДСТВЕННАЯ АДРЕСАЦИЯ
Операнд размещается непосредственно в коде команды. В системе команд МП КР580 непосредственный операнд может иметь длину 1 или 2 байта и размещаться после первого байта кода команды, содержащего код операции. Если операнд имеет длину 2 байта, то сначала размещается младший байт, а затем старший. В мнемонической записи байты указываются в обычной порядке: сначала старший, а затем младший.
Примеры: |
|
LXI B, |
Загрузка пары BC константой 1AF4. |
1AF4 |
|
ORT |
Дизъюнкция содержимого аккумулятора с константой F0. |
F0 |
|
|
32 |
Непосредственная адресация широко используется для указания различных констант.
2.3. Команды пересылок
Основные команды пересылок представлены в таблице 3.1. Команды вводавывода и команды работы со стеком, также относящиеся к группе команд пересылок, будут рассматриваться в других лабораторных работах.
2.4. Команды арифметических операций
Вычислительные возможности МП КР580 ограничены простыми командами сложения и вычитания восьми битных операторов. Операции умножения и деления, а также операции с другими форматами данных реализуются с помощью подпрограммы, что приводит к значительному уменьшению производительности МП-системы.
Команды арифметических операций приведены в таблице 3.2.
2.4.1.Команды с однобайтными операндами в аккумуляторе
Операнды представлены в форме целого числа со знаком в дополнительном коде
сдиапазоном изменения от –128 до +127. Старший бит представляет собой знак.
Вкомандах, в которых формируются признаки переноса или заема, операнды рассматриваются как целые числа без знака с диапазоном изменения от 0 до 255.
Первый операнд и результат операции подразумеваются в аккумуляторе; второй операнд может находиться в любом РОН, в памяти или непосредственно в команде. Все флаги (признаки) устанавливаются в соответствии с результатом операции.
Команды сравнения CMP и CPI производят вычитание из содержимого аккумулятора значения адресуемого операнда, модифицируют по результату все флаги, но не изменяют содержимого аккумулятора. Наличие такого неразрушающего сравнения упрощает, например, операции поиска в массиве чисел.
Таблица 3.1.
МНЕМОНИ- |
ДВОИЧ- |
|
|
ЧИСЛО |
|||
КА |
КО- |
НЫЙ КОД |
ВЫПОЛНЯЕМЫЕ ДЕЙСТВИЯ |
|
БАЙТ |
|
|
МАНДЫ |
|
КОМАН- |
|
ТАКТОВ |
|||
|
|
|
|||||
|
|
ДЫ |
|
|
ЦИКЛОВ |
||
|
|
|
|
|
|
|
|
MOV RD,RS |
01DDDSSS |
ПЕРЕСЫЛКА БАЙТА ИЗ RS В RD |
|
1 |
1 |
5 |
|
MOV R,RS |
01110SSS |
ПЕРЕСЫЛКА БАЙТА ИЗ RS |
В |
1 |
2 |
7 |
|
|
|
|
ПАМЯТЬ ПО АДРЕСУ ИЗ HL |
|
|||
|
|
|
|
|
|
|
|
MOV RD,M |
01DDD110 |
ПЕРЕСЫЛКА БАЙТА ИЗ ПАМЯТИ |
1 |
2 |
7 |
||
|
|
|
(ПО АДРЕСУ В HL) В RS |
|
|||
|
|
|
|
|
|
|
|
MVI RD,Д8 |
00DDD110 |
ПЕРЕСЫЛКА БАЙТА Д8 В RD |
|
2 |
2 |
7 |
|
MVI M,L8 |
00110110 |
ПЕРЕСЫЛКА БАЙТА Д8 В ПА- |
|
|
|
||
|
|
|
2 |
3 |
10 |
||
|
|
|
МЯТЬ ПО АДРЕСУ ИЗ HL |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
|
|
|
CDA АДР |
00111001 |
STA АДР |
00110010 |
LDAX РП |
00SSS010 |
STAX РП |
00DDD010 |
XCNG |
11101011 |
LXI РП, Д16 |
11DDD010 |
LHLD АДР |
00101010 |
SHLD АДР |
00100010 |
ЗАГРУЗКА АККУМУЛЯТОРА ИЗ ПАМЯТИ С УКАЗАННЫМ АДРЕСОМ ЗАПИСЬ ИЗ АККУМУЛЯТОРА В
ПАМЯТЬ ПО УКАЗАННОМУ АДРЕСУ ЗАГРУЗКА АККУМУЛЯТОРА ИЗ
ПАМЯТИ С АДРЕСОМ ИЗ РП ЗАПИСЬ ИЗ АККУМУЛЯТОРА В ПАМЯТЬ ПО АДРЕСУ ИЗ РП ОБМЕН СОДЕРЖИМЫМ ПАР DE
И HL
ЗАГРУЗКА ПАРЫ РП ДВУМЯ БАЙТАМИ Д16 ИЗ КОДА КОМАНДЫ
ЗАГРУЗКА В HL СОДЕРЖИМОГО ДВУХ ЯЧЕЕК ПАМЯТИ: (АДР)L,(АДР+1) H
ЗАПИСЬ ИЗ HL В ПАМЯТЬ: (L)АДР,HАДР+1
3 4 13
3 4 13
1 2 7
1 2 7
1 1 4
3 3 10
3 5 16
3 5 16
МП КР580 может производить также обработку двоично-десятичных чисел. В этом формате байт содержит две десятичные цифры (тетрады) в коде 8-4-2-1. Сложение таких чисел выполняется в два этапа:
операнды складываются как двоичные числа; производится десятичная коррекция.
Однобайтная команда десятичной коррекции DAA в два приема корректирует значение в аккумуляторе на две десятичные цифры с правильной установкой флага C:
если младшая тетрада содержит число, большее 9, или установлен флаг AC=1, содержимое аккумулятора увеличивается на 6;
|
|
|
Таблица 3.2. |
|
|
|
|
|
|
|
МАШИННЫЙ |
|
ЧИСЛО |
|
МНЕМО - |
|
БАЙТ |
|
|
ДВОИЧНЫЙ |
ВЫПОЛНЯЕМЫЕ ДЕЙСТВИЯ |
|
||
НИКА |
ТАКТОВ |
|
||
КОД |
|
|
||
|
|
ЦИКЛОВ |
|
|
|
|
|
|
|
|
|
|||
КОМАНДЫ С ОДНОБАЙТНЫМИ ОПЕРАНДАМИ В АККУМУЛЯТОРЕ |
|
|||
|
|
|
|
|
|
|
34 |
|
|
ADD RS |
10000SSS |
|
|
|
1 |
1 |
4 |
|
ADD M |
10000110 |
СЛОЖЕНИЕ |
|
|
1 |
2 |
7 |
|
ADI Д8 |
11000110 |
|
|
|
2 |
2 |
7 |
|
ADC RS |
10001SSS |
СЛОЖЕНИЕ |
С |
УЧЕТОМ |
1 |
1 |
4 |
|
ADC M |
10001110 |
1 |
2 |
7 |
||||
ПЕРЕНОСА |
|
|
||||||
ACI Д8 |
11001110 |
|
|
2 |
2 |
7 |
||
|
|
|
||||||
DAA |
00100111 |
ДЕСЯТИЧНАЯ КОРРЕЦИЯ 1 |
1 |
4 |
||||
SUB RS |
10010SSS |
|
|
|
1 |
1 |
4 |
|
SUB M |
10010110 |
ВЫЧИТАНИЕ |
|
|
1 |
2 |
7 |
|
SUI Д8 |
11010110 |
|
|
|
2 |
2 |
7 |
|
SBB RS |
10011SSS |
ВЫЧИТАНИЕ |
С |
УЧЕТОМ |
1 |
1 |
4 |
|
SBB M |
10011110 |
1 |
2 |
7 |
||||
ЗАЕМА |
|
|
||||||
SBI Д8 |
11011110 |
|
|
2 |
2 |
7 |
||
|
|
|
||||||
SMP RS |
10111SSS |
|
|
|
1 |
1 |
4 |
|
SMP M |
10111110 |
СРАВНЕНИЕ |
|
|
1 |
2 |
7 |
|
SPI Д8 |
11111110 |
|
|
|
2 |
2 |
7 |
КОМАНДЫ С ОДНОБАЙТНЫМИ ОПЕРАНДАМИ В РЕГИСТРАХ И ПАМЯТИ
INR RS |
00SSS100 |
ИНКРЕМЕНТ |
1 |
1 |
5 |
|
INR M |
00110100 |
1 |
3 |
10 |
||
|
||||||
DCR RS |
00SSS101 |
ДЕКРЕМЕНТ |
1 |
1 |
5 |
|
DCR M |
00110101 |
1 |
1 |
10 |
||
|
||||||
КОМАНДЫ С ДВУХБАЙТНЫМИ ОПЕРАНДАМИ |
|
|
|
|||
INX РП |
00SSS011 |
ИНКРЕМЕНТ |
1 |
1 |
5 |
|
DCX РП |
00SSS011 |
ДЕКРЕМЕНТ |
1 |
1 |
1 |
|
DAD РП |
00SSS001 |
ПРИБАВЛЕНИЕ СОДЕРЖИ- |
1 |
3 |
10 |
|
|
|
МОГО ПАРЫ РП К СОДЕР- |
|
|
|
|
|
|
ЖИМОМУ ПАРЫ HL. |
|
|
|
если после этого старшая тетрада аккумулятора содержит число, большее 9, или если установлен флаг C, то в старшую тетраду прибавляется 6.
Следует специально подчеркнуть, что команда DAA не корректирует вычитания.
2.4.2.Команды с однобайтными операндами в регистрах и памяти
Эти команды увеличивают или уменьшают на единицу содержимое любого РОН, аккумулятора или ячейки памяти, адресуемой через пару HL. Содержимое аккумулятора при этом не изменяется. Модифицируются все флаги, кроме флага C.
2.4.3.Команды с двухбайтными операндами в регистровых парах
35
Операндами является содержимое регистровых пар в формате целого числа без знака. Значения всех флагов не изменяются, только команда DAD модифицирует флаг переносов C.
3. ОБЪЕКТЫ ИССЛЕДОВАНИЯ
Работа проводится на учебно-отладочном устройстве «Электроника-580» без дополнительных модулей и контрольно-измерительной аппаратуры.
4.ЗАДАНИЕ ДЛЯ ПОДГОТОВКИ
4.1.Ознакомьтесь с системой команд МП КР580, изучите методы адресации, которые можно использовать в командах при разработки машинных программ. Ознакомьтесь с командами пересылок.
4.2.Составьте программу 3.1 для выполнения действий, описанных в соответствующей строке таблицы 3.3, не используя косвенную адресацию.
4.3.Составьте программу 3.2 для того же варианта с использованием косвенной адресации.
|
Таблица 3.3. |
|
|
|
|
Вариант |
Выполнить указанные действия |
|
|
|
|
1 |
85+101 8251 31-14 D (8251)+1 8251 (D) 8252 (8251) +(D)B |
|
2 |
22-76 C (A)+41 8301 (C)+1 8302 121 D (D)-(C)8303 |
|
3 |
99 E (E)-22 80C4 51 D (D) –(E) 80C3 (DE)+(HL)HL |
|
4 |
(2F1) B 44+59 C (B)-(C)8010 (C)-2 8011 –120 8012 |
|
5 |
37+52 8320 21 B (B) +41 8321 (A)-(B)8322 (8321)+17 8323 |
|
6 |
78C4 DE 26-18 H 31+4 l (DE)+(HL)HL (H)80FA |
|
7 |
127-74 C (C)-14 80E4 66-(C)(D) (B)+(D)80E3 (C)+(D)80E2 |
|
8 |
(17A)E (E)+1 826E 98+5 826Г (E)-4 826 -62 826C |
|
9 |
18+81 C 42-37 D (C)+(D)8341 (C)-(D)8342 (C)+2 8343 |
|
10 |
110-93 D (D)+27 B (D)+18 800A (A)+1 8009 (B)-8-(C)8007 |
|
|
|
|
5.ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
5.1.Занесите программу 3.1 в память УОУ, определите начальное содержимое всех программно-доступных регистров, установите стартовый адрес программы.
5.2.Выполните программу 3.1 и определите содержимое всех программнодоступных регистров. Результаты занесите в таблицу. Проверьте правильность работы программы.
36
5.3.Аналогично исследуйте программу 3.2.
5.4.Сравните программы по занимаемой памяти и времени выполнения.
6.СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать: текст программы 3.1;
содержимое регистров и используемых ячеек памяти до и после выполнения программы 3.1;
текст программы 3.2; содержимое регистров и используемых ячеек памяти до и после выполнения
программы 3.2; характеристики программ; выводы.
7.КОНТРОЛЬНЫЕ ВОПРОСЫ
7.1.Объясните различие между прямой и непосредственной адресацией.
7.2.Объясните различие между прямой и косвенной адресацией.
7.3.Укажите все методы адресации, используемые при составлении про-
граммы 3.2.
7.4.Какие форматы чисел предусмотрены в системе команд МП КР580?
7.5.Как осуществляется десятичная коррекция?
37
ЛАБОРАТОРНАЯ РАБОТА №4. ИЗУЧЕНИЕ РАБОТЫ КЛАВИАТУРЫ И ДИСПЛЕЯ УОУ
1. ЦЕЛЬ РАБОТЫ
Исследование методов подключения и организации обмена информацией с устройствами ввода-вывода УОУ: клавиатурой и светодиодным дисплеем.
2. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ.
ВВОД-ВЫВОД ИНФОРМАЦИИ
К командам ввода-вывода МП КР580 относятся команды: IN ПОРТ;
OUT ПОРТ.
Команды ввода-вывода занимают в памяти 2 байта, выполняются за 3 машинных цикла(10 тактов). Состояние всех флагов не изменяется.
При выполнении команд IN ПОРТ микро ЭВМ считывает код из входного
устройства с адресом |
ПОРТ и записывает его в аккумулятор. При выполнении ко- |
манды ОUТ ПОРТ |
микропроцессор записывает код из аккумулятора в выходное |
устройство адресом |
ПОРТ. Так как адрес устройства указывается в одном байте, то |
спомощью этих команд микро ЭВМ может обмениваться информацией не более чём
с256 внешними устройствами вывода и 256 внешними устройствами ввода. Адрес внешнего устройства выдается на шину адреса ША одновременно и в младшем и в старшем байтах кода адреса.
Реализация ввода-вывода с помощью специальных команд называется изолированным вводом-выводом. Здесь: адресное пространство портов отделено от адресного пространства памяти. При организации в МП-системах ввода-вывода, отображенного на память, порты ввода-вывода считаются ячейками с определенным адресами. Следовательно, все команды, адресующие порты, становятся командами вводавывода и специальные команды не нужны.
ВУОУ операции ввода-вывода, а клавиатурой, магнитофоном и индикаторным схемами на .светодиодах осуществляются через универсальный параллельный интерфейс на БИС КР580ВВ55 (рис. 8) в режиме программного обмена информацией.
Порт А используется для ввода информации от клавиатуры, порт В - для ввода информации от магнитофона через модем, а порт С - для вывода
38
|
РЕГИСТР |
|
|
|
|
|
УПРАВЛЕНИЯ |
|
|
||
|
(адрес 03) |
|
ИС “вх МФ” |
||
|
|
|
|
Вх |
|
|
|
1 |
МОДЕМ |
||
|
|
|
|
||
СИСТЕМНЫЕ |
|
2 |
|
Вых |
|
ПОРТ В |
3 |
ИС “вых МФ” |
|||
ШИНЫ |
|||||
|
К МАГНИТО- |
||||
|
(адрес 01) |
4 |
|
||
|
|
ФОНУ |
|||
|
5 |
|
|||
|
|
|
|||
|
|
|
|
||
ША ШД ШУ |
|
6 |
Разрешение работы монитора |
||
|
|
7 |
|||
|
|
|
|
||
|
|
1 |
ИС |
«Z» |
|
|
|
2 |
|||
|
|
|
|
||
|
ПОРТ С |
3 |
ИС |
«С» |
|
|
|
4 |
|||
|
(адрес 02) |
|
|
||
|
5 |
|
|
||
|
|
|
|
||
|
|
6 |
разрешение |
|
|
|
|
7 |
|
||
|
|
|
|
||
|
|
1 |
работы дисплея |
|
|
|
|
2 |
|
|
|
|
ПОРТ А |
3 |
|
|
|
|
4 |
|
|
||
|
(адрес 00) |
|
|
||
|
5 |
|
|
||
|
|
КЛАВИА- |
|||
|
|
6 |
|||
|
|
ТУРА |
|||
|
|
7 |
|
|
|
|
|
|
|
Внешнее |
|
Параллельный интерфейс ИПС |
|
устройство |
|||
|
(БИС кр 580 вв 55) |
|
УОУ |
||
|
|
|
|
||
Рисунок 8 - Схема программного ввода - вывода информации в УОУ |
информации на индикаторные схемы ИС, дли выдачи сигналов управления на клавиатуру, для выдачи сигналов разрешения работы монитора и дисплея, а также для вывода информации на магнитофон. Порт с адресом 03 используется для передачи в БИС управляющего слова, которое определяет режим и направление работы каждого информационного порта. Монитор УОУ программирует порты А и В на ввод информации, а порт С - на вывод.
КЛАВИАТУРА
При организации ввода информации с клавиатуры микро ЭВМ необходимо решить следующие задачи: I) определение факта нажатия клавиши на клавиатуре; 2) нахождение номера начатой клавиши; 3) осуществление передачи управления на соответствующую подпрограмму.
39
|
7 |
|
|
6 |
|
Порт |
5 |
|
4 |
||
|
||
С |
3 |
|
|
2 |
|
|
1 |
|
|
0 |
|
|
|
|
|
|
|
|
7 |
|
|
6 |
|
Порт |
5 |
|
4 |
||
|
||
В |
3 |
|
|
2 |
|
|
1 |
|
|
0 |
|
|
|
|
|
7 |
|
|
6 |
|
Порт |
5 |
|
4 |
||
|
||
А |
3 |
|
|
2 |
|
|
1 |
|
|
0 |
|
|
|
|
|
|
+5 |
|
|
|
B |
«7» |
«F» |
«CLR» |
R7 |
|
|
|
«6» |
«E» |
«BRK» |
R6 |
|
|||
|
|
|
|
«5» |
«D» |
«NEXT» |
R5 |
|
|
||
«4» |
«C» |
«RUN» |
R4 |
|
|
||
«3» |
«B» |
«STEP» |
R3 |
|
|
||
«2» |
«A» |
«ADDR» |
R2 |
|
|
||
«1» |
«9» |
«REC» |
R1 |
|
|
||
«0» |
«8» |
«MEM» |
R0 |
|
|
Рисунок 9 - Схема подключения клавиатуры к параллельному интерфейсу
В УОУ используется самый распространенный в настоящее время метод организаций клавиатуры, при котором клавиши образуют прямоугольную матрицу n*m (в УОУ - 8 строк и 3 столбца). Клавиатура подключена к системному каналу через универсальный параллельный интерфейс ИПР, выполненный на БИС КР580ВВ55. Схема подключения клавиатуры приведена на рис. 9.
На линии 4,5,6 порта выдаются сигналы опроса столбцов клавиш, а через линии 0-7 порта А производится ввод сигналов от строк.
Для определения факта нажатия хотя бы одной клавиши достаточно на все вертикальные линии подать сигналы низкого уровня. Если не нажата ни одна клавиша,
40