1-2009 ДГЦУиМП
.pdf3.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С |
; Е = Е + 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