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

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

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

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

Добавлен: 15.06.2024

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

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

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

25

Программа 2

Адрес

 

Код

Метка

Мнемокод

Комментарий

 

команды

 

 

 

 

 

 

8200

06

0A

 

MVI B, 0A

Занести

количество

перио-

 

 

 

 

 

 

дов =10

 

 

8202

11

FF83

 

LXI 83FF

 

Занести адрес ячейки инди-

 

 

 

 

 

 

кации в регистры DE

8205

3E00

M1

MVI A, 00

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

8207

12

 

 

STAX

 

Занести 0 в ячейку индика-

 

 

 

 

 

 

ции

 

 

8208

CD 2082

 

CALL DLIT

Вызвать

подпрограмму за-

 

 

 

 

 

 

держки

 

 

820B

3E FF

 

MVI A, FF

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

820D

12

 

 

STAX D

 

Занести FF в ячейку инди-

 

 

 

 

 

 

кации

 

 

820E

CD 2082

 

CALL DLIT

Вызвать

подпрограмму за-

 

 

 

 

 

 

держки

 

 

8211

05

 

 

DCR B

 

B-1 B

 

 

8212

C2 0582

 

JNZ M1

 

Если B0, идти к M1

 

8215

E7

 

 

RST4

 

Окончание программы

8220

C5

 

DLIT

PUSH B

 

Подпрограмма выдержки

8221

D5

 

PUSH D

 

Сохранение данных в реги-

 

 

 

 

 

 

страх B, C, D, E

 

8222

01

F8C8

 

LXI

B,

Счетчик

B=200,

счетчик

 

 

 

 

C8F8

 

С=248

 

 

8225

15

 

DLI

DCR

 

“пустой оператор”

 

8226

05

 

 

DCR B

 

B-1 B

 

 

8227

C2 2582

 

JNZ DLI

 

Выдержка 10мкс

 

822A

06 C8

 

MVI B, 01

Загрузить счетчик B=200

822C

0D

 

DCR C

 

C-1 C

 

 

822D

C2 2582

 

JNZ DLI

 

Кратные выдержки

 

8230

D1

 

POP D

 

Восстановление содержимо-

 

 

 

 

 

 

го регистровых пар

 

8231

C1

 

 

POP B

 

 

 

 

8232

C9

 

 

RET

 

Возврат из подпрограммы

25


26

2. ЗАДАНИЕ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ

1. Изучите группу логических команд и команд условной передачи управления.

2.Ознакомьтесь с разрядами регистра признаков МП серии К580 и правилами записи в них единицы.

3.Ознакомьтесь с программой 1.

4.Разработайте программу занесения числа 12 по адресу 8400, если содержимое аккумулятора больше 3, но меньше 10, иначе в ячейку памяти занести нуль.

5.Видоизмените программу 1 так, чтобы микроЭВМ реагировала на нуль в пятом разряде при записанных 1 во всех остальных разрядах.

6.Вычислите временную задержку, реализованную подпрограммой DLIТ в программе 2.

7.Видоизмените программу 2 так, чтобы обеспечить выдержку времени 0,2с, если машинный такт равен 0,5 мкс.

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

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

Ввести в микроЭВМ программу 1, занести в аккумулятор число и запустить программу. Представить число в двоичном коде и проанализировать его на 1 в пятом разряде. Проанализировать содержание десяти ячеек, начиная с адреса 8400. Проанализировать содержание регистра признаков при пошаговом выполнении программы.

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

Ввести в микроЭВМ программу 2, изменить начальное значение счетчиков (регистров В и С) в командах LXI B (адрес 8222) и MOV B (адрес 822А) на 02 и исследовать выполнение программы, просматривая содержание регистра В, признака Z, указателя стека и вершины стека в пошаговом режиме. Запустить программу на выполнение в режиме прогона, предварительно установив указанные в программе 2 начальные значения счетчиков, замерить время выдержки. Установить такие значения счетчиков, чтобы выдержка времени была равной 0,2 ±

26

27

0,02с. Заменить команду POP на любую однобайтовую команду в программе 2 и проанализировать результаты выполнения программы.

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

Доступ к регистровым парам осуществляется по команде ADDR, X; где X - имя регистровой пары (В, D, H, S - указатель стека, P - вершина стека).

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

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

1) перечень команд передачи управления по условию;

2)полный перечень команд вызова и возврата из подпрограммы;

3)видоизмененные программы 1 и 2 в соответствии с заданием для домашней подготовки;

4)выражение для расчета времени выдержки для программы 2;

5)перечень команд работы со стеком.

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

1. При выполнении каких команд в программе 1 задействуются разряды регистра признаков МП?

2.По каким условиям записывается 1 в каждый из разрядов регистра признаков?

3.Какой разряд регистра признаков соответствует каждому из признаков?

4.Перечислите логические операции, выполняемые МП серии

К580.

5.Сколько машинных тактов нужно для выполнения команд CALL

иRET?

6.В какой последовательности происходит запись и считывание из стека по командам PUSH и POP?

7.С помощью каких команд можно обозначить область памяти, отведенную под стек?

8.С помощью каких команд сохраняется и извлекается содержимое регистровых пар МП при выполнении подпрограммы?

9.Укажите порядок выполнения команды RET.

27


28

10. Укажите область адресов, занимаемую стеком в программе 2. Какие значения принимает при этом указатель стека?

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

ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ

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

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

В микроЭВМ, построенных на базе МП серии К580, наибольшее распространение получил способ определения чисел с фиксированной запятой, т.к. в этом МП отсутствуют специальные команды для работы с числами с плавающей запятой. Двоичное же восьмиразрядное число можно представить как двоичное число со знаком, имеющее значение от -128 до +127. При этом отрицательные числа представлены в дополнительном коде, а старший разряд числа используется как знаковый.

Число с фиксированной запятой можно представить двоичным числом без знака, имеющим значения от 0 до 255.

Для МП серии К580 можно представить числа без знака и в виде двоично - десятичного числа, при котором каждый байт рассматривается как два полубайта - две тетрады, каждая из которых кодирует десятичную цифру. Такое представление позволяет занести в один байт числа от 0 до 99.

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

Программа сложения массивов однобайтных чисел с получением двухбайтного результата MAIN - программа 1. Слагаемые должны быть расположены в последовательных адресах памяти. Входными параметрами подпрограммы ADDB являются адрес первого слагаемого, записанный в регистровой паре НL, и число слагаемых, записанное в регистре В. Выходным параметром программы MAIN является сумма, старший байт которой записан в регистре С, а младший - в аккумуляторе А. Особенность алгоритма сложения в данной программе состоит в том, что после прибавления каждого элемента массива определяется

28

29

переполнение аккумулятора (признак СY=1), и если это имеет место, то содержимое регистра С увеличивается на 1.

МикроЭВМ может проводить арифметические операции с числами с двойной или большей длиной машинного слова. Так как МП серии К580 имеет восьмиразрядное арифметическо-логическое устройство (АЛУ), то операции с числами должны производиться по байтам, начиная с младших. При этом целесообразно использовать команды ADC для сложения и SBB для вычитания, которые учитывают значение признака переноса (займа) СY.

Программа нахождения разности двух чисел, имеющих одинаковую длину, - программа 2. Входные параметры: регистр С - длина чисел (в байтах), регистровые пары Н - адрес младшего байта вычитаемого, D - адрес младшего байта уменьшаемого. Результат заносится в область памяти, отведенную под вычитаемое. В том случае, если уменьшаемое меньше вычитаемого, по адресу 8000 заносится 1.

Программа 1

Адрес

Код

Метка

Мнемокод

Комментарий

 

команды

 

 

 

 

8200

21 0084

MAIN

LXI H, 8400

Записать в

регистры HL

 

 

 

 

адрес первого слагаемого

8203

06 05

 

MVI B, 05

Загрузить в B количество

 

 

 

 

слагаемых

 

8205

CD 0982

 

CALL

Вызов программы сложе-

 

 

 

ADDB

ния

 

8208

E7

 

RST4

Прервать

выполнение

 

 

 

 

программы

8209

AF

ADD

XRA A

Очистить аккумулятор

 

 

B

 

 

 

820A

4F

 

MOV C,A

Очистить

счетчик пере-

 

 

 

 

носов

 

820B

86

CNT

ADD M

Прибавить к содержимо-

 

 

 

 

му аккумулятора число из

 

 

 

 

массива слагаемых

820C

D2 1082

 

JNC TRM

Если признак C=0, идти к

 

 

 

 

TRM

 

29



30

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

Адрес

Код

Метка

 

Мнемокод

Комментарий

 

команды

 

 

 

 

 

 

 

 

820F

0C

 

 

INR C

Содержимое

регистра C

 

 

 

 

 

увеличить на 1

 

8210

23

TRM

 

INX H

Указать

 

на

следующий

 

 

 

 

 

адрес слагаемого

 

8211

05

 

 

DCR B

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

 

 

 

 

 

жимое

счетчика

слагае-

 

 

 

 

 

мых

 

 

 

 

8212

C2 0B82

 

 

JNC CNT

Если не все слагаемые,

 

 

 

 

 

идти к CNT

 

 

8215

C9

 

 

RET

 

 

 

 

 

 

 

 

Программа 2

 

 

 

 

 

Адрес

Код

Метка

 

Мнемокод

Комментарий

 

команды

 

 

 

 

 

 

 

 

8200

AF

SBN

 

XRA

Очистить

аккумулятор и

 

 

 

 

 

признак CY

 

 

8201

32 0080

 

 

STA 8000

Очистить ячейку с адре-

 

 

 

 

 

сом 8000

 

 

 

8204

1A

CNT

 

LDA X, D

Записать

в аккумулятор

 

 

 

 

 

уменьшаемое

 

 

8205

9E

 

 

SBB M

Вычесть из содержимого

 

 

 

 

 

аккумулятора

вычитае-

 

 

 

 

 

мое

 

 

 

 

8206

77

 

 

MOV M,A

Записать разность на ме-

 

 

 

 

 

сто вычитаемого

 

8207

23

 

 

INX H

Указать

 

на

следующий

 

 

 

 

 

байт вычитаемого

 

8208

13

 

 

INX D

Указать

 

на

следующий

 

 

 

 

 

байт уменьшаемого

8209

0D

 

 

DCR C

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

 

 

 

 

 

жимое

счетчика

длины

 

 

 

 

 

числа

 

 

 

 

820A

C2 0482

 

 

JNC C T

Если число не кончилось,

 

 

 

 

 

идти к CNT

 

 

 

 

 

 

 

 

 

 

 

30