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

Методичка - Микропроцессоры микроЭВМ

.pdf
Скачиваний:
54
Добавлен:
02.05.2014
Размер:
551.11 Кб
Скачать

3. 2. 2. Чтение и запись содержимого регистров МП

Для чтения содержимого одного из регистров Х надо нажать следующие клавиши: REG X,

где X клавиша данных с наименованием соответствующего регистра (А,В,С,D,Е,Н,L,F). Напомним обозначение регистра: А – аккумулятор; В,С,D,Е,Н,L – регистры общего

назначения; F – регистр признаков (флагов).

После нажатия клавиш в разряде 5 индикатора отобразится имя регистра, в разрядах 7 и 8 – его содержание.

Пример 2. Прочитать содержимое регистра А (табл. 7). Таблица 7. Чтение содержимого регистра

Кла-

Информация на ин-

Примечание

виша

1234

5678

 

REG

8200

****

Исходное состояние

A

8200

A–??

Содержимое регистра А в раз-

 

 

 

рядах 7, 8

Нажатие на клавишу NEXT выведет на индикатор содержимое следующего регистра МП в последовательности А, В, С, D, Е, F, H, L, A, B и т. д. (табл. 8).

Для ввода данных в регистр необходимо нажать одну или две шестнадцатеричные клавиши данных.

Таблица 8. Последовательное чтение регистров микропроцессора

 

 

Кла-

 

Информация на ин-

 

Примечание

 

 

виша

 

дикаторе

 

 

 

 

 

 

1234

5678

 

 

 

 

 

REG А

8200

 

A–??

Исходное состояние

 

 

NEXT

8200

 

B–??

Индикация В

 

 

NEXT

8200

 

C–??

Индикация С

Пример 3. В регистр С записать код А116 (табл. 9).

 

 

 

 

Таблица 9. Запись информации в регистр

 

 

 

 

 

 

 

 

 

 

 

Кла-

 

Информация на ин-

 

Примечание

 

 

виша

 

дикаторе

 

 

 

 

 

 

 

1234

 

5678

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

REG С

 

8200

 

C–??

 

Установка регистра С

 

 

 

А

 

8200

 

С–0А

 

Запись кода А1

 

 

1

 

8200

 

С–А1

 

 

 

Для отображения на индикаторе информации, хранящейся в регистровых парах R микропроцессора, надо нажать следующие клавиши:

 

ADDR

R MEM,

где R – обозначение клавиши в соответствии с анализируемой регистровой парой.

Таблица 10. Клавиши УОУ и соответствующие им регистровые пары

 

 

 

 

 

 

Клавиша

 

Регистровая пара

 

1/P

 

Указатель стека

 

 

8/H

 

HL

 

 

B

 

BC

 

 

D

 

DE

 

 

2/T

 

Вершина стека

 

11

После нажатия клавиш УОУ в разрядах 5, 6 индикатора отобразится имя регистровой пары, в разрядах 1…4 – ее содержимое.

Пример 4. Прочитать содержимое регистровой пары HL и указателя стека. Таблица 11. Чтение содержимого регистровой пары

Кла-

Информация на ин-

Примечание

виша

 

 

 

1234

5678

 

ADDR

8200

**??

Исходное состояние

8/H

0008

****

Клавиша соответствует HL

MEM

8220

H ??

Содержимое НL в разрядах 1…4

RST

8200

**??

Исходное состояние

ADDR

8200

**??

Исходное состояние

2/T

0002

****

Клавиша соответствует SP

MEM

8200

??

Указатель стека в разрядах 1…4

3. 3. Запись программы в память УОУ

Для установки адреса нужной ячейки памяти требуется нажать следующие клави-

ши:

ADDR N N N N MEM

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

Если клавиша МЕМ была нажата, ввод данных в память произойдет при нажатии одной или двух шестнадцатеричных клавиш. Этим замещается содержимое ячейки памяти по адресу, высвеченному на дисплее. Новые данные появятся на двух правых индикаторах дисплея.

Если при вводе данных допущена ошибка, ее можно исправить нажатием дополнительных цифровых клавиш. Будет записан в память и отображен на дисплее только код двух последних цифровых клавиш. Нажатие клавиши CLR восстанавливает первоначальное содержимое ячейки памяти (при условии, что другие командные клавиши перед этим не нажимались).

Для перехода к адресу следующей ячейки памяти нужно нажать клавишу NEXT. При этом нет необходимости нажимать клавишу МЕМ еще раз.

Повторные нажатия клавиши МЕМ уменьшают на единицу адрес ячейки памяти (в отличие от клавиши NEXT, нажатие которой увеличивает на единицу этот адрес).

Высвечивание децимальной точки шестого слева индикатора дисплея указывает на то, что клавиша МЕМ была нажата и ввод данных в память разрешен. Если она не светится, данные вводиться не будут.

Сигнал ошибки «Err» высветится дисплее, при попытке ввести данные в ПЗУ, либо ввести данные в фактически отсутствующий в ОЗУ адрес. В этом случае, для того чтобы восстановить предыдущий адрес и разрешить ввод данных в память, следует нажать на клавишу МЕМ.

12

Пример 5. В ячейку 821016 записать число lA16 (табл. 12), увеличить адрес (табл. 13), уменьшить адрес (табл. 14).

Таблица 12. Запись значения в ячейку памяти

Клавиша

Информация на ин-

Примечание

 

1234

5678

 

ADDR 8210

8210

*,??

Установка адреса

 

8210

*,01

 

MEM 1A

8210

*,1A

Запись числа 1А

Таблица 13. Увеличение адреса ячейки памяти

Кла-

Информация на ин-

Примечание

виша

 

 

 

1234

5678

 

 

8210

*,1А

Исходный адрес

NEXT

8211

*,??

Следующий адрес

NEXT

8212

*,??

Следующий адрес

Таблица 14. Уменьшение отображаемого адреса ячейки памяти

Кла-

Информация на ин-

Примечание

виша

 

 

 

1234

5678

 

 

 

 

 

 

8212

*,??

Исходный адрес

MEM

8211

*,??

Исходный адрес

MEM

8210

*,1А

Предыдущий адрес

4. Задание к лабораторной работе

1. Записать с адреса 8200Н по адрес 8212Н последовательность убывающих чисел,

начинающуюся с числа 18Н.

 

 

 

2.

Обнулить все регистры МП.

 

 

3.

Прочитать ПЗУ с адреса 0 по адрес 20Н.

 

 

4.

Записать в регистры микропроцессора их названия.

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

 

 

 

1.

Продолжить таблицу соответствия чисел в разных системах счисления (табл. 1)

до числа 4ØН (таблица должна быть заполнена вручную).

2. Представить прочитанное ПЗУ с адреса 0 по адрес 20Н в виде программы (реас-

семблировать), полученная программа должна иметь вид

 

 

 

 

 

 

 

 

 

 

Адрес

Код

Мет-

Мнемоника

Комментарий

 

 

 

 

ка

 

 

 

 

 

0000

31 D8 83

 

LXI SP, 83D8H

Загрузка указателя стека

 

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

 

 

 

1.

Назовите регистры микропроцессора, укажите разрядность.

2.

Что такое регистровая пара.

 

 

3.

Какая разрядность шины данных (шины адреса).

4.

Переведите числа из 8-й системы счисления в 10-ю систему счисления и назад.

 

 

 

 

 

13

 

 

ЛАБОРАТОРНАЯ РАБОТА № 2

Запись и выполнение простых команд:

INR, DCR ADD, ANA, ORA, XRA, DAA, RAR, SUB, SBB

1. Цель работы

Исследование и выполнение отдельных команд и простых программ.

2.Домашнее задание

1.Рассчитать выборочные результаты выполнения команд INR, DCR ADD, ANA, ORA, XRA, DAA, RAR, SUB, SBB в соответствии с заданием (табл. 15). Составить алгоритм программы.

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

Исходные числа

A

B

C

D

E

Результат

 

 

 

 

 

3. Результат для команды двух операторов представить в виде

A B

C D

E

A

B

C

D

E

Таблица 15. Варианты заданий на лабораторную работу № 2

A

B

C

D

E

1

B1

6C

68

64

60

2

B6

1

6D

69

65

3

BB

6

2

6E

6A

4

C0

0B

7

3

6

5

C5

10

0C

8

4

6

CA

15

11

0B

9

7

CF

20

16

12

0E

8

D4

B5

21

17

13

9

2E

BA

26

22

18

10

33

BF

2B

27

23

11

38

C4

30

2C

28

12

43

C9

35

31

2D

13

48

CE

40

36

32

14

4D

D3

45

41

37

15

52

D8

4A

46

42

16

57

53

4

48

47

17

5C

58

54

50

4C

18

61

5B

59

55

51

19

66

62

5E

5A

56

20

6B

67

63

5F

58

21

64

60

5C

58

54

22

69

65

61

5D

59

A

B

C

D

E

31

96

92

8E

8A

86

32

9B

97

93

8F

8B

33

A0

9C

98

94

90

34

A5

A1

9D

99

95

35

AA

A6

A2

9E

9A

36

AF

AB

A7

A3

9F

37

B4

B0

AC

A8

A4

38

B9

B5

B1

AD

A9

39

BE

BA

B6

B2

AE

40

C3

BF

BB

B7

B3

41

C8

C4

C0

BC

B8

42

CD

C9

C5

C1

BD

43

D2

CE

CA

C6

C2

44

D7

D3

CF

CB

C7

45

DC

D8

D4

D0

CC

46

E1

DD

D9

D5

D1

47

E6

E2

DE

DA

D6

48

EB

E7

E3

DF

DB

49

F0

EC

E8

E4

E0

50

F5

F1

ED

E9

E5

51

FA

F6

F2

EE

EA

52

FF

FB

F7

F3

EF

14

A

B

C

D

E

23

6E

6A

66

62

5E

24

73

6F

6B

67

63

25

78

74

70

6C

68

26

7D

79

75

71

6D

27

82

7E

7A

76

72

28

87

83

7F

7B

77

29

8C

88

84

80

7C

30

91

8D

89

85

81

A

B

C

D

E

53

B9

25

B1

AD

A9

54

BE

2A

B6

B2

AE

55

C3

20

BB

B7

B3

56

C8

34

C0

BC

B8

57

CD

39

C5

C1

BD

58

D2

44

CA

C6

C2

59

D7

49

CF

CB

C7

60

DC

4E

D4

D0

CC

3. Краткие сведения из теории

МП БИС КР580ИК80 имеет фиксированный набор команд. Различают команды пересылки данных, арифметико-логические команды и др. Команды пересылки могут выполняться как между различными регистрами МП, так и между регистром МП и ячейкой памяти.

МОV R1, R2 – команда пересылки. Команда занимает в памяти один байт. Байт данных пересылается из регистра R2 в регистр R1. В регистре назначения новые данные заменяют старую информацию, а исходный регистр остается без изменений.

Команда МОV М, А пересылает содержимое аккумулятора в ячейку памяти по адресу, определяемому парой НL (Н – старший байт, L – младший байт).

Команды прямой адресации памяти обращаются к памяти посредством двухбайтового адреса, являющегося частью самой команды. Команды этой группы занимают 3 байта памяти:

STA ADDR – заполнить аккумулятор в памяти по адресу ADDR;

LDA ADDR – загрузить аккумулятор из памяти по адресу ADDR;

SHLD ADDR – запомнить содержимое HL в памяти по адресу ADDR; LHLD ADDR – загрузить HL-пару из памяти по адресу ADDR.

Команды косвенной адресации памяти обращаются к памяти по адресам, содержащимся в регистровых парах. Команды STAX, LDAX запомнят аккумулятор в памяти или загрузят аккумулятор из памяти соответственно. Адрес памяти будет определен регистровой парой DE или BC.

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

ADD – сложить содержимое регистра (байта памяти) с аккумулятором:

Аккумулятор

+

 

2EH = 00101110

 

B-регистр

 

 

6CH = 01101100

 

ADD B

 

 

 

 

 

 

9AH =10011010

 

SUB – вычесть из аккумулятора содержимое регистра (байта памяти):

Аккумулятор

2EH = 00101110

 

B-регистр

 

6CH = 01101100

 

SUB B

 

C2H =11000010

 

15

АNА – логическое И содержимого аккумулятора с содержимым регистра (байта памяти):

Аккумулятор

FCH =11111100

С-регистр

0FH = 00001111

ANA C

0CH = 00001100

Команда АNА часто используется для сведения к нулю битов.

XRА – логическое исключающее ИЛИ содержимого аккумулятора с содержимым регистра (байта памяти):

Аккумулятор

5CH = 01011100

 

В-регистр

78H = 01111000

 

XRA B

 

24H = 00100100

 

ORA – логическое ИЛИ содержимого аккумулятора с содержимым регистра (байта памяти):

Аккумулятор

33H = 00110011

H-регистр

 

0FH = 00001111

ORA Н

3FH = 00111111

 

INR – инкрементировать содержимое регистра (байта памяти):

С-регистр

99H =10011001

INR C

9AH =10011010

DCR – декрементировать содержимое регистра (байта памяти):

L-регистр

FFH =11111111

DCR L

FEH =11111110

CMA – инвертировать аккумулятор:

 

A-регистр

51H = 01010001

CMA A

AEH =10101110

RAR – циклический сдвиг аккумулятора вправо через перенос (правый бит аккумулятора замещает содержимое бита переноса, предыдущее содержимое бита переноса перемещается в левый бит аккумулятора):

A-регистр

0F 2H =11110010

RAR A

79H =01111001

NОР – нет операции, переход на следующую команду.

4. Задание к лабораторной работе

Составить программу проверки выполнения каждой предложенной команды. Возможная структурная схема алгоритма (рис. 2) предполагает, что загрузка и выгрузка данных производится из ячеек памяти.

16

Заполнить таблицы результатами выполнения программ.

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

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

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

1)листинг каждой программы.

2)таблицу результатов каждой команды.

3)проверку одного результата каждой команды в двоичном и шестнадцатеричном

коде.

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

6.1.Укажите способы адресаций и соответствующие им команды МП К580.

6.2.Поясните правила выполнения арифметических и логических команд.

6.2.Приведите таблицы истинности для логических команд.

6.3.Расскажите правило выполнения команды DAA. Приведите пример ее исполь-

зования.

Начало

A=M(адрес 1)

R=A

A=M(адрес 2)

A=R+A

M(адрес 3)=A

Конец

Рис. 2. Возможная структурная схема алгоритма

17

ЛАБОРАТОРНАЯ РАБОТА № 3

Ввод-вывод маскированных данных и организация условных переходов

1. Цель работы

Исследование программы обработки данных.

2. Домашнее задание

Составить алгоритм программы в соответствии с вариантом.

Таблица 15. Варианты заданий на лабораторную работу № 3

Задание

Разрядность дан-

ных в массиве, бит

 

 

8

16

24

32

1

Найти минимум, адрес минимума

A

B

C

D

2

Найти максимум, адрес максимума

A

B

C

D

3

Найти среднее в массиве длиной 512 (1024, 2048) элементов

A

B

C

D

4

Найти размах Р = max – min

A

B

C

D

5

Вычесть из каждого числа минимум

A

B

C

D

6

Вычесть из максимума каждое число

A

B

C

D

7

Преобразовать все числа в дополнительный код

A

B

C

D

8

Заполнить область памяти кодом

A

B

C

D

9

Переместить массив с адреса ААААН

A

B

C

D

10

Найти количество отличий в двух массивах

A

B

C

D

11

Найти контрольную сумму массива

A

B

C

D

12

Создать массив приращений

A

B

C

D

13

Произвести цифровую фильтрацию массива данных скользящим

A

B

C

D

 

окном

 

 

 

 

14

Найти количество вхождений подстроки в строке

A

B

C

D

15

Найти координату первого вхождения подстроки в строке

A

B

C

D

16

Отсортировать массив по возрастанию

A

B

C

D

17

Отсортировать массив по убыванию

A

B

C

D

18

Поменять четные и нечетные элементы местами

A

B

C

D

19

Поменять максимум и минимум местами

A

B

C

D

20

Обнулить четные элементы массива

A

B

C

D

21

Обнулить нечетные элементы массива

A

B

C

D

22

Найти количество установленных бит в числах массива

A

B

C

D

23

Найти сумму элементов массива, делящихся на 2 (4, 8)

A

B

C

D

24

Найти количество экстремумов

A

B

C

D

25

Найти количество участков, на которых функция не изменяется

A

B

C

D

26

Поменять местами старшую и младшую части каждого числа

A

B

C

D

 

массива

 

 

 

 

27

Поделить элементы массива на 2 (4, 8)

A

B

C

D

28

Изменить каждое число на постоянную величину

A

B

C

D

29

Обнулить числа с четным количеством единиц

A

B

C

D

30

Обнулить числа с нечетным количеством единиц

A

B

C

D

18

3. Краткие сведения из теории

Предусмотрено 5 битов признаков состояния для отражения результатов действий над данными (табл. 16). Все биты, кроме одного (вспомогательный бит переноса), могут быть проанализированы условными командами, влияющими на последующее выполнение программы.

 

 

Таблица 16. Биты условий

 

 

 

Название

Обо-

Правила установки

 

значе-

 

 

ние

 

Бит переноса

С

Бит переноса показывает переполнение бита 7 аккумулято-

 

 

ра. Устанавливается при переполнении аккумулятора в ре-

 

 

зультате выполнения операции сложения

Бит вспомога-

С’

Бит вспомогательного переноса показывает переполнение

тельного пере-

 

бита 3. Используется только при выполнении команды

носа

 

DAA

Бит нуля

Z

Бит нуля устанавливается при результате выполнения ко-

 

 

манды равном нулю

Бит знака

S

Бит знака устанавливается в состояние самого старшего

 

 

бита результата (бит 7)

Бит четности

P

Бит четности устанавливается, если в результате количест-

 

 

во 1 четно

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

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

бита:

+AEH = _10101110 74H = _ 01110100 ,

122H =100100010

перенос = 1.

Операция сложения, которая в результате дает переполнение старшего бита, устанавливает бит переноса в единицу. Операция сложения, которая в результате не дает переноса из старшего бита, сбрасывает бит переноса.

При сложении, вычитании, сдвиге и логических операциях установка и сброс бита переноса происходит по разным правилам.

Вспомогательный бит переноса показывает переполнение бита 3, так же как и бит переноса показывает переполнение бита 7. Состояние вспомогательного бита переноса нельзя проверить непосредственно в программе, вспомогательный бит переноса используется только при выполнении одной команды DАА. Следующий пример иллюстрирует установку бита вспомогательного переноса:

+2EH =00101110

74H =01110100 ,

A2H =10100010

перенос = 0, дополнительный перенос = 1.

На бит вспомогательного переноса влияют команды сложения, вычитания, инкремента, декремента, сравнения.

19

Если рассматривать байт данных как число в диапазоне -12810…12710, в этом случае бит 7 всегда будет представлять знак числа, т. е. , если бит 7 = «1», то число находится

вдиапазоне 0…12710. После выполнения определенных команд бит знака устанавливается

всостояние самого старшего бита результата (бита 7).

Бит нуля устанавливается в состояние «1» в том случае, если результат выполнения определенных команд равен «0». Если результат не равен «0», то этот бит устанавливается в состояние «0»:

+ A7H =10100111 59H =01011001 ,

100H =100000000

Ответ 0. Бит нуля устанавливается в «1».

Перенос из бита 7 = 1. Устанавливается бит переноса.

Бит четности устанавливается, если количество «1» в байте результата четное. В противном случае – сбрасывается.

4. Задание к лабораторной работе

Составить, отладить и продемонстрировать программу в соответствии с вариантом. При написании программы учесть следующее:

Массив может быть размером больше, чем 255 (0FFH) чисел.

Контрольная сумма массива – младшие биты общей суммы. Длина контрольной суммы соответствует размеру одного элемента массива (в массиве 8-битных чисел – контрольная сумма 8 бит).

Поиск конца массива лучше производить из правила больше/меньше, а не из правила равенства. Если элемент массива занимает более одного байта, то равенство текущего адреса массива и конечного адреса массива может не соответствовать переходу от одного элемента массива к другому элементу массива.

Проверьте работу программы с массивом, расположенным по адресам с 2000H по 8000H. Массив заполнен одинаковыми элементами. Это позволяет предсказать результат работы программы.

Работа УОУ в режиме «прогон» существенно быстрее, но в отличие от режима «отладка» не позволяет производить пошаговое выполнение программы (отладку). Работа

сбольшим массивом может занять значительное время, использование режима «прогон» предпочтительно.

Адреса начала и конца массивов и другие параметры, задаваемые перед выполнением программы, желательно хранить в ячейках памяти и загружать их по мере необходимости в регистры микропроцессора командами LDA, LHLD.

Завершить программу лучше командой RST32. После ее выполнения УОУ автоматически перейдет на адрес 8200H и выполнение программы остановится.

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

Отчет должен содержать: листинг программы и блок-схему программы.

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

6. 1. Какие бывают биты условий?

6. 2. На что воздействуют биты условий?

6. 3. Какие команды устанавливают или сбрасывают бит P (S, Z, С, C’)?

6. 4. Перечислите команды перехода (арифметические, логические команды).

20