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

1-2009 ДГЦУиМП

.pdf
Скачиваний:
12
Добавлен:
26.03.2016
Размер:
1.53 Mб
Скачать

3.3.Запишите в память программу загрузки регистра ука­ зателя стека и счетчика команд данными 0891Н, 0924Н, 09АСН. Выполните программу и проверьте содержимое ука­ занных регистров.

3.4.Запишите в память программу пересылки числа АА из

аккумулятора А последовательно в регистры В, С, Э, Е, Н, Ь. Выполните ее и проверьте правильность работы.

3.5.Запишите в память программу загрузки числа 55Н в ячейки памяти с адресами 900, 901, 902, 903. Выполните ее. Посмотрите содержимое ячеек памяти с адресами 900, 901, 902, 903. Оно должно быть равно 55Н.

3.6.Запишите в память программы загрузки регистров В, С, О, Е, Н, Ь числами соответственно 01,02, 03, 04,05, 06. Вы­ полните их. Просмотрите содержимое регистров и убедитесь в правильности записи.

3.7.Запишите в память программы записи и чтения содер­ жимого регистров А, В, С, В , Е, используя команды чтения/записи памяти при адресации через регистровую пару НЬ. Выполните их , предварительно записав в регистры А, В, С, Б, Е, или соответственно в ячейки памяти числа 10, 11, 12, 13, 14. Просмотрите содержимое регистров (или памяти) и убедитесь

вправильности ее работы.

4. ОФОРМЛЕНИЕ ОТЧЕТА

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

1.Тексты программ в соответствии с пунктами домашнего задания.

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

3.Выводы.

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1. Перечислите регистры, доступные для программирова ния в микропроцессоре КР580ИК80А.

19

2.Объясните отличие регистра аккумулятора от других регистров общего назначения.

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

общего назначения?

4.Какие команды используются при непосредственной за­ писи в память?

5.Приведите команды обращения к памяти с косвенной адресацией.

[1, С. 95-104], [2, С.82-89].

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

ИЗУЧЕНИЕ КОМАНД ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ И ЛОГИЧЕСКИХ ОПЕРАЦИЙ МИКРОПРОЦЕССОРОМ КР580ИК80

I. ОБЩИЕ УКАЗАНИЯ

Цель работы·, изучение программ выполнения арифмети­ ческих и логических операций МП КР580ИК80.

Исследуются программы, позволяющие осуществлять арифметические и логические операции с (8-16)-разрядными данными.

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

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

20

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

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

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

В системе команд МП КР580ИК80 предусмотрены сле­ дующие команды двоичной арифметики:

1)сложение 8-разрядных чисел;

2)сложение 16-разрядных чисел;

3)вычитание 8-разрядных чисел;

4)инкремент;

5)декремент.

Все арифметические операции с 8-разрядными операнда­ ми предполагают, что один из операндов размещается в реги­ стре аккумулятора, а другой либо в регистре, либо в памяти (при этом адрес ячейки задается в регистровой парю НЬ), либо является непосредственным числом, заданным в своей коман­ де. Результат арифметической операции записывается в акку­ мулятор. Кроме того, по результату арифметических операций сложения и вычитания устанавливаются биты признаков: С - переноса, Ъ - нуля, Б - знака, Р - четности, АС - вспомога­ тельного переноса.

Команды сложения 16-разрядных чисел, так называемые команды двойного сложения, предусматривают, что один из операндов находится в регистровой паре НЬ, а второй - либо в БЕ, либо в ВС. Результат записывается в НЬ. Кроме того, по результату операции устанавливается либо' сбрасывается бит переноса-С.

Команды инкремента увеличивают содержимое регистров, ячейки памяти по адресу в НЬ и регистровых пар на I. Команда

21

инкремент регистра и памяти изменяет биты признаков: Z, S, Р, АС. Инкремент регистровой пары не затрагивает биты при­ знаков. ;

Для реализации логических операций в системе команд микропроцессора КР580ИК80 предусмотрены следующие ло­ гические команды:

1)логическое сложение (OR);

2)логическое умножение (AND);

3)исключающее ИЛИ (XOR);

4)инверсия (NOT).

Все логические команды выполняются побитно с 8- разрядными операндами. При этом один из операндов разме­ щается в регистре - аккумуляторе, а второй - либо в одном из регистров общего назначения, либо в ячейке памяти или зада­ ется во втором байте команды. При этом бит переноса уста­ навливается в нуль, а остальные биты устанавливаются в соот­ ветствии с результатом выполнения команды. Например:

11011011

10001111

11100001

 

AND

XOR

10101111

OR

01011101

10111101

10011001

NOT

11011111

10001101

01111000

01010000

Используемое оборудование

Учебный микропроцессорный комплект на базе КР580ИК80 (УМК).

2. ДОМАШНИЕ ЗАДАНИЯ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ

2.1. Изучите группу арифметических и логических кома МП КР580ИК80. Приложение 1. /2, 3/.

22

2.2.Ознакомьтесь с правилами выполнения команды БАА

-десятичной коррекции аккумулятора .

2.3.Составьте программы сложения и вычитания двух 8- разрядных чисел, одно из которых хранится в ячейке памяти, а другое в регистре С. Результат записать в регистр О.

2.4.Составьте программу сложения двух 16-разрядных чи­ сел, хранящихся в памяти. Результат записать в две соседние ячейки памяти.

2.5.Составьте программу перевода двоичного числа в 8- разрядный дополнительный код.

2.6.Составьте программу, реализующую преобразования трех 8-разрядных чисел в соответствии с логическим выраже­ нием

¥= Х-У +г +Х-У.

Результат записать в регистр Е.

Для выполнения заданий 2.3-2.6 воспользуйтесь следую­ щими примерами программ.

Программа, реализующая операцию суммирования содер­ жимого аккумулятора* регистра В, ячейки памяти М, единицы

 

 

А = А + В + М + 1

Ад­

Команда

Машин­

Комментарии

рес

 

ный код

 

800

АОБВ

80

; А = А + В

801

XXI Н,900Н

21 00 09

; Загр. НЬ=900Н, адрес Н

804

АБИМ

86

; А = А + М

805

АБ01

€ 6 01

; А = А + 1

Программа, реализующая операцию вычитания из содер­ жимого аккумулятора содержимое регистров В, ячейки памяти М и единицы

А = А - В - М - 1 23

Ад­

Команда

Машин­

Комментарии

рес

 

ный код

 

800

БШ В

90

; А = А - В

801

ЬХ1Н,900Н

21 00 09

; Загр.НЕ=900Н, адрес М

804

ЗиВ М

96

; А = А - М

805

БВ101

ОЕ 01

; А = А -1

Программа, реализующая операцию суммирования 16разрядных чисел, хранящихся в регистрах ВС и ОЕ

Н = ВС + ОЕ

Ад­

Команда

Машин­

Комментарии

рес

 

ный код

 

800

М ОУН,В

60

; пересылка Н <- В

801

МОУ и с

69

; пересылка Ь <- С

802

ОАО Б

19

; НЬ = НЬ + ОЕ

Программа, реализующая операцию увеличения на 1 со­ держимого регистра Е, ячейки памяти М, пары регистров ОЕ

Ад­

Команда

Машин­

Комментарии

рес

 

ный ко,д

 

800

1Ш Е

; Е = Е + 1

801

ЬХ1 Н,900Н

21 00 09

; Загр.НЕ=900Н, адрес М

804

ш т ш

34

; М = М + 1

805

ш х о

13

; ОЕ = ОЕ +1

I

Программа, реализующая операцию логического сложения

всоответствии с выражением

А= А + С + М + 80Н.

24

Ад­

Команда

Машин­

Комментарии

рес

 

ный код

 

800

ORAC

В1

; А = A OR С

801

LX IН, 900Н

21 00 09

; Загр.Н = 900Н, адрес М

804

ORAM

В6

; А = A OR М

805

ORI 80Н

Р6 80

; А = A OR 80Н

Программа, реализующая операцию логического умноже­ ния в соответствии с выражением

 

 

А = А 4>М-7РР1.

Ад­

Команда

Машин­

Комментарии

рес

 

ный код

 

800

AND

А2

; А = A AND D

801

LXIH, 900Н

21 00 09

; 3arp.HL=900H, адрес М

804

ANAM

А6

; А = A AND М

805

ANI7FH

E6 7F

; A = A A N D 7FM

3. ЛАБОРАТОРНЫЕ ЗАДАНИЯ И МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ИХ ВЫПОЛНЕНИЮ

3.1. Запишите в память программы сложения и вычитани двух 8-разрядных чисел, одно из которых.хранится в ячейке памяти, а другое в регистре С. Проверьте правильность их вы­ полнения на примере суммирования (вычитания) пяти пар раз­ личных чисел.

Результаты выполнения арифметических операций в дво­ ичном коде представьте в виде таблицы.

■3.2. Запишите в память программу сложения двух 16разрядных чисел, хранящихся в памяти. Проверьте правиль­ ность ее выполнения на примере суммирования пяти различ­ ных чисел. Результаты представьте в виде таблицы.

25

3.3.Запишите в память программу перевода двоичного числа в 8-разрядный дополнительный код. Проверьте правиль­ ность ее выполнения. Используя программу, переведите в до­ полнительный код следующие числа 2, 5, -7, -9, 17,-21,24, -29, -38, -41. Результаты представьте в виде таблицы.

3.4.Запишите в память программу, реализующую преоб­ разование двух 8-разрядных чйсел в соответствии с логиче­ ским выражением п.2.6. Проверьте правильность ее выполне­ ния на примере пяти пар различных чисел. Результаты пред­ ставьте в виде таблицы.

4. ОФОРМЛЕНИЕ ОТЧЕТА

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

1.Тексты программ в соответствии с пунктами домашнего задания.

2.Пояснения к исправлениям ошибок в тексте программ, выявленных в процессе их отладки.

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

3.Выводы.

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1.Какие команды арифметических операций может вы­ полнять МП КР580ИК80?

2.Сформулируйте правило выполнения МП КР580ИК80 команды DAA.

3.После каких команд можно осуществлять десятичную

коррекцию числа аккумулятора?

4.Как оценить время выполнения программы сложения двух чисел?

5.Представьте числа'от 5 до 25 в двоично-десятичном ко­

де.

26

6.Укажите возможные способы представления чисел для МП КР580ИК80.

7.Какие команды логических операций может выполнять МП КР580ИК80?

[1, С. 95-104], [2, С.82-89].

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

ИЗУЧЕНИЕ КОМАНД СДВИГА И СРАВНЕНИЯ

МП КР580ИК80

1. ОБЩ ИЕ УКАЗАНИЯ

Цель работы: изучение программ выполнения операций сдвига и сравнения МП КР580ИК80. Исследуются программы, позволяющие осуществлять операции сдвига и сравнения с 8- разрядными операндами.

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

Команды сдвига выполняются в регистре-накопителе, ак­ кумуляторе над 8разрядными операндами. Результат заносится в аккумулятор.

Команда циклического сдвига влево перемещает каждый бит байта на один разряд влево, при этом содержимое старше­ го разряда записывается в младший разряд и в бит переноса.

Команда циклического сдвига вправо перемещает каждый бит байта на один разряд вправо. При этом содержимое млад­ шего разряда записывается в старший разряд и в бит переноса.

Команда сдвига влево через перенос перемещает содержи­ мое каждого бита влево на один разряд. При этом содержимое бита переноса записывается в младший разряд, а содержимое старшего заносится в бит переноса. Используя эту команду, можно реализовать операцию умножения на число, кратное 2.

27

Команда сдвига вправо через перенос перемещает содер­ жимое каждого бита вправо на один разряд. При этом в стар­ ший разряд бита записывается значение бита переноса, а в не­ го заносится содержимое младшего разряда байта. Используя эту команду, можно реализовать операцию деления на число, кратное 2.

Система команд микропроцессора КР580ИК80 содержит три типа команд сравнения:

сравнение аккумулятора с регистром; сравнение аккумулятора с ячейкой памяти;

сравнение аккумулятора с непосредственным операндом. Команды сравнения выполняются посредством внутренне­

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

Результат сравнения

 

Принцип

ноль

перенос

Равно

1

0

Больше

0

0

Меньше

0

1

Бит четности устанавливается по результату внутреннего вычитания и, соответственно, равен 1, если количество единиц в результате четно,*и равен 0, если количество единиц нечетно.

Бит знака устанавливается равным значению старшего разряда результата внутреннего вычисления.

Используемое оборудование

Учебный микропроцессорный комплект на базе КР580ИК80 (УМК) /1/.

28

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