Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МУ_ЛР_АВС_220411

.pdf
Скачиваний:
25
Добавлен:
10.05.2015
Размер:
952.9 Кб
Скачать

ПОДРАЗУМЕВАЕМАЯ АДРЕСАЦИЯ

Адрес операнда явно не содержится в адресной части кода команды, но подразумевается в содержании соответствующей операции либо один и тот же адрес используется для операнда и результата операции. Например, в описании арифметических и логических команд указано, что адресации. Схемы на рис. 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]