bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [236]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ИТиУвТС » Другое

контрольная по ВМиС
Подробности о скачивании 11.10.2011, 13:47
Задание 1. Устройство микропроцессора.

• Разрядность, быстродействие.
• Структура памяти, объем основной памяти.
• Система команд.

В учебно-лабораторном микропроцессорном комплексе УМК в качестве центрального процессора применен микропроцессор КР580ВМ80А. Это восьмиразрядный однокристальный микропроцессор с фиксированной системой команд, предназначенный для построения средств обработки данных, применяемых в устройствах автоматики контроллерах и микроЭВМ.
Арифметико-логический блок включает восьмиразрядное арифметико-логическое устройство (АЛУ) выполняющее 4 арифметических операции (сложение с учетом переноса в младший разряд, сложение без учета переноса в младший разряд, вычитание с учетом заема из младшего разряда и вычитание без учете заема из младшего разряда), 4 логические операции (конъюнкция, дизъюнкция, неравнозначность, сравнение) и четыре вида циклического сдвига (сдвиг влево без переноса, сдвиг вправо без переноса, сдвиг влево с переносом, сдвиг вправо с переносом), блок десятичной коррекции, используемый для формирования кода коррекции 0110 при выполнении в АЛУ действий в двоично-десятичной системе, и регистр признаков, в который заносится информация о результате выполнения
При выполнении арифметических и логических операций одним из операндов служит содержимое аккумулятора и результат выполнения операции помещается в аккумулятор. Циклический сдвиг выполняется только над содержимым аккумулятора. Восьмиразрядный регистр признаков (флажковый регистр) фиксирует пять признаков полученного в АЛУ результата: z - признак нулевого результата, С - перенос из старшего разряда, s - знак результата, Р - признак четности числа единиц в коде результата, АС - дополнительный перенос (перенос из 4-го разряда кода результата). Три разряда этого регистра 1-й, 3-й и 5-й считая справа, хранят фиксированные значения соответственно 1,0,0.
Блок регистров включает семь программно доступных 8-разрядных регистра А, В, С, Д, Е, Н, L. Из них регистр А, называемый аккумулятором, предназначен для обмена информацией с внешними устройствами (т.е. либо содержимое этого регистра может быть выдано на выход, либо со входа в него может быть принято число) при выполнении арифметических, логических операций и операций сдвига. Он служит источником операнда (числа, участвующего в операции), в него помещается результат выполнения операции
Буферные регистры 1 и 2, регистры W и Z используются как буферные, программно-недоступные регистры временного хранения информации. Так регистры W и Z предназначены для приема и временного запоминания второго и третьего байтов команды переходов, передаваемых с внутренней шины данных в счетчик команд. Указатель стека SР (16-разрядный) служит для адресации особого вида памяти, называемого стеком. Счетчик команд РS (16 разрядный) предназначен для хранения адреса команды, после выбора из ОЗУ текущей команды содержимое счетчика увеличивается на единицу и таким образом формируется адрес очередной команды (при отсутствии безусловных и условных переходов).
При обращении к памяти в качестве адреса может использоваться и содержимое любой пары регистров блока РОН.
При выдаче адреса содержимое соответствующих регистров, указателя стека или счетчика команд передается в I6-разрядный управляемый адресный регистр, из которого далее через буфер адреса поступает на 16-разрядную шину адреса. С этой шины адрес может быть принят в ОЗУ.
Набор команд МП КР580 содержит 78 базовых команд, различающихся мнемоническим обозначением кода операции, а в целом включает 244 различные модификации. Функциональное описание команд приведено в прил. I.
Код операции любой команды (для однобайтовой команды - ЭТО просто код команды) в МП представляется двоичным 8 - разрядным кодом. Например, код команды пересылки из регистра А в регистр В будет иметь вид 01111000, код операции команды непосредственной записи 8-разрядного операнда в память имеет вид 00110110, а команда загрузки аккумулятора с непосредственной адресацией будет иметь код операции 00111010. Естественно, что запомнить более 200 кодов команд, представленных в виде двоичных 8-разрядных чисел (набора единиц и нулей), почти невозможно. Поэтому каждому коду команды ставится в соответствие мнемоническое название команды (мнемоника), которое является сокращением от английских слов, описывающих ее действие. Мнемонический код команд позволяет легче запомнить их функции и значительно упрощает написание программ.
После мнемоники операции для двухбайтовых команд записывается 8-разрядний операнд, обозначаемый D8, а для трехбайтовых - 16-разрядный адрес ADR, либо операнд D16.
Для сокращения записи и удобства ввода в ЭВМ двоичные коды команд обычно представляют в шестнадцатеричном виде. Для этого двоичный код команды делится на группы по 4 разряда (тетрады) и каждая тетрада представляется шестнадцатеричной цифрой. Таким образом, коды команд можно представить двухразрядным шестнадцатеричным кодом. (Приложение 2),16 -разрядный код адреса -четырьмя шестнадцатеричными цифрами, а операнды - 8 - разрядные (D8) - двумя разрядами и 16-разрядлие (D16) - четырьмя разрядами. Так, например, код команды пересылки

MOV A,B = 0111 10002 = 7816 =78 H

Таким образом, зная мнемонику команды, можно по таблице (Приложение 2) определить ее шестнадцатеричный код, а по таблице (Приложение 1) порядок ее выполнения, способ адресации, формируемые признаки результата и т.д.
Все команды МП КР580 подразделяются на 5 функционально-специализированных групп (Прил. 1.2):
1. Команды передачи данных - используются для передачи данных из регистра в регистр, из памяти в регистр (регистровую пару) и из регистра (регистровой пары) в память. Это команды типа MOV, MVI, LXI, LDA и т.д.;
2. Команды арифметических операция применяются для двоичных операций сложения, вычитания, инкрементирования и декрементирования содержимого регистра (регистровой пары) или ячейки памяти, а также для сложения двоично-десятичных чисел. В состав этой группы входят команды типа ADD, ADI, SUB, SUI, INB, DCR и т.д.
3. Команды логических операций — реализуют операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ (неравнозначность), сравнения и сдвига. В состав этой группы входят команды вида АNА. ANI, XRA, XRI, ОRА, RLC, RAR и т.д.
4. Команды передачи управления — используются при условии и безусловных переходах в программе, вызовах подпрограмм и возвратах из них, рестартах подпрограмм при организации многоуров¬невых векторных прерываний. Это команды вида JMP, JC, CALL и т.д. Команды рестарта из этой группы RSТ0, ..., RST7 образуют особую группу команд. Эти однобайтные команды формируются, как правило, специальными аппаратными средствами (контроллерами прерываний) в режиме прерывания работы МП. В этот режим МП входит, получив сигнал прерывания от системного устройства (при условии, что триггер INTE был установлен в единицу). При этом МП заканчивает цикл выполнения текущей команды (в программном счетчике содержится уже адрес следующей команды программы), сбрасывает в нуль триггер INTE и считывает с ШД(8) код команды рестарта, который выставляется контроллером прерывания. Действие этой аппаратной команды аналогично действию команды вызова подпрограммы, но отличается, во-первых, тем, что ограничено возможностью вызова в соответствии с вектором прерывания лишь из восьми подпрограмм, размещаемых в первых 64 ячейках постоянной памяти и, во-вторых, тем, что при выполнении команды рестарта не происходит, как при выполнении любой другой команды, инкрементирования содержимого программного счетчика. Поэтому в стек записывается адрес очередной команды прерываемой программы, а по команде возврата (в подпрограмме обслуживания прерывания) этот адрес извлекается из стека и управление передается в ту точку прерванной программы, куда постудило прерывание, и продолжается выполнение основной программы.

5. Команды стека, ввода-вывода и управления — используются для управления прерыванием, останова МП, ввода-вывода данных и обращения к стеку, его указателю и вершине. Эта команды PUSН, РОР, ХТНL, IN, OUT, HLT, NOP и др.

Задание 2. Передать управление программе (табл. 1), вычисляющей выражение (а + b) - с при а = 10, b = 3, с = -1, размещенных в ячейках 0820, 0821 и 0822 соответственно, с остановом по адресу 080A.

Таблица 1
Адрес Содержимое (машинный код) Ассемблерный код (мнемокод) Комментарий
0800 21 LXI H, 0820 Занесение адреса числа а в пару регистров
0801 20 HL
0802 08
0803 7Е MOV A, M Пересылка числа а из ячейки памяти в аккумулятор
0804 23 INX H Инкриминирование содержимого регистра HL
0805 86 ADD M Сложение а + в
0806 23 INX H Инкриминирование содержимого регистра HL
0807 96 SUB M Вычитание (а + в) – с
0808 23 INX H Инкриминирование содержимого регистра HL
0809 77 MOV M, A Пересылка содержимого аккумулятора в ячейки 0823
080А 76 HLT Останов.
...
0820 0A A
0821 03 B Числовая информация
0822 FF C

Задание 3. Команды передачи управления микропроцессора КР580.

Выполнить на эмуляторе МП КР580 Лабораторную работу №2. Ввести положительные и отрицательные (в дополнительном коде) элементы массива a1, a2, …, a10. Выполнить вариант согласно порядковому номеру в списке группы.

Вариант 2. Даны действительные числа а1, а2, а3…аn (положительные и отрицательные). Найти сумму модулей этих чисел.

Адрес Метка Содержимое Комментарий
1 2 3 4
LXI H,NACH Загрузка адреса начала массива в пару регистров HL (адрес числа N)
MOV С,M Загрузка числа N в регистр С
MVI B 0 Загрузка регистра B константой 0
START: INX H Формирование адреса числа A1
MOV A,M Загрузка числа A1 в аккумулятор
STC Установка регистра переноса
CMC Инвертирование регистра переноса
ADD B Сложение Ai, результат в аккумуляторе МП.
MOV B,A Пересылка результата в регистр B
DCR C Декрементир. содерж. регистра С
JNZ START Условный переход по адресу (на метку) START, если Z=0 (Z=1 - на останов)
INX H Формирование адреса ячейки памяти для размещения результата
MOV M,A Пересылка результата в ячейку памяти
HLT Останов.
NACH N Массив памяти для размещения исходных данных и результата.
A1
A2

An
результат

Адрес Код Метка Мнемокод Комментарий
0800 21 LXI H,NACH Загрузка адреса начала массива в пару регистров HL (адрес числа N)
0801 13
0802 08
0803 4E MOV С,M Загрузка числа N в регистр С
0804 06 MVI B 0 Загрузка регистра B константой 0
0805 00
0806 23 START: INX H Формирование адреса числа Ai
0807 7E MOV A,M Загрузка числа Ai в аккумулятор
0808 37 STC Установка регистра переноса
0809 3F CMC Инвертирование регистра переноса
080A 80 ADD B Сложение Ai, результат в аккумуляторе МП.
080B 47 MOV B,A Пересылка результата в регистр B
080C 0D DCR C Декрементир. содерж. регистра С
080D C2 JNZ START Условный переход по адресу (на метку) START, если Z=0 (Z=1 - на останов)
080E 06
080F 08
0810 23 INX H Формирование адреса ячейки памяти для размещения результата
0811 77 MOV M,A Пересылка результата в ячейку памяти
0812 76 HLT Останов.
0813 N NACH Массив памяти для размещения исходных данных и результата.
0814 A1
0815 A2
0816 …
0817 An
0818 результат
0819
081A
081B
081C
Категория: Другое | Добавил: Vitaly
Просмотров: 1880 | Загрузок: 45
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]