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

контрольная по ВМиС

.doc
Скачиваний:
11
Добавлен:
01.04.2014
Размер:
130.05 Кб
Скачать

Задание 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><88-разрядных чисел ><(набора ><единиц ><и ><нулей), ><почти ><невозможно. Поэтому ><каждому ><коду ><команды ><ставится ><в ><соответствие ><мнемоническое ><название ><команды ><(мнемоника), ><которое ><является ><сокращением ><от ><английских ><слов, ><описывающих ><ее ><действие. ><Мнемонический ><код ><команд ><позволяет ><легче ><запомнить ><их ><функции ><и ><значительно ><упрощает ><написание ><программ.>

<После ><мнемоники ><операции ><для ><двухбайтовых ><команд ><записывается ><8-разрядний ><операнд, ><обозначаемый ><D8, ><а ><для ><трехбайтовых ><- ><16-разрядный ><адрес ><ADR, ><либо ><операнд D><DD16.>

<Для с><окращения ><записи ><и ><удобства ><ввода ><в ><ЭВМ ><двоичные ><коды ><команд ><обычно ><представляют ><в ><шестнадцатеричном ><виде. ><Для ><этого ><двоичный ><код ><команды ><делится на>< ><группы ><по ><4 ><разряда ><(тетрады) ><и ><каждая ><тетрада ><представляется ><шестнадцатеричной ><цифрой. ><Таким ><образом, ><коды ><команд ><можно ><представить двухразрядным ><шестнадцатеричным ><кодом><. (Приложение ><2),16 ><-разрядный ><код ><адреса ><-четырьмя ><шестнадцатеричными ><цифрами, ><а ><операнды ><- ><8 ><- ><разрядные ><(D8) ><- ><двумя ><разрядами ><и ><16-разрядлие ><(D16)>< ><- ><четырьмя ><разрядами. ><Так, >< ><например, >< ><код ><команды ><пересылки>

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

<Таким ><образом, ><зная ><мнемонику ><ко><манды, ><можно ><по таблице (Приложение 2) ><() ><определить ><ее ><шестнадцатеричный ><код, а >< ><по ><таблице ><(Приложение ><1) п><орядок ><ее ><выполнения, ><способ ><адресации, ><формируемые ><признаки ><результата ><и ><т.д.>

<Все ><команды ><МП ><КР580 ><подразделяются на> ><5 ><функционально-><специализированных ><групп ><(Прил. >< >< ><1.2): >

1. <11Команды ><передачи ><данных ><- ><используются ><для ><передачи ><данных ><из ><регистра ><в ><регистр, ><из ><памяти ><в реги><стр ><(рег><истровую ><пару) ><и ><из ><регистра ><(регистровой ><пары) ><в ><память. ><Это ><команды ><типа ><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

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