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

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

.docx
Скачиваний:
13
Добавлен:
01.04.2014
Размер:
49 Кб
Скачать
☆

Министерство образования Республики Беларусь

БГУИР

Факультет заочного обучения

Кафедра: электронных вычислительных машин

Контрольная работа

по дисциплине: «Вычислительные машины и системы»

Выполнил студент гр. 902403-20

Специальности ИТиУвТС

Петров В.И.

Проверил:

Оценка: ________________

________________________

(подпись)

________________________(дата)

Почтовый адрес:

г. Гомель, ул. Чечерская, д. 32, кв. 58.

т. (8-025) 758-80-85

e-mail: cxvint@gmail.com

Задание №1

Основные параметры МП КР580ВМ80А:

разрядность шины данных — 8;

разрядность шины адреса — 16;

количество операций в секунду — 0,5*106 ;

длительность цикла, мкс — 1,6;

максимальная емкость адресуемой памяти — 64 Кбайта;

С помощью двух шин 16-разрядной однонаправленной шины адреса (ША) и 8- разрядной двунаправленной шины данных (ШД) микропроцессор (МП) соединяется с памятью (БЗУ) и внешними устройствами (БВУ). Для повышения нагрузочной способности шины данных. МП обмен информацией между МП и узлами системы ведется через двунаправленный шинный формирователь-буфер данных (БД). Значения разрядов выходною кода БД индицируются с помощью светодиодов. Непосредственно с шиной данных МП связан регистр слова состояния (РСС), на выходы которого для индикации значений кода состояния подключены тоже светодиоды. Слово состояния МП передается в РСС в начале каждого машинного цикла

Буфер шины адреса (БА) служит для увеличения нагрузочной способности адресной шины МП. Для индикации значений разрядов кода адреса используются светодиоды, подключенные к разрядам буфера адреса (БА).

Хранение данных и программ осуществляется в ПЗУ и ОЗУ. ПЗУ выполнено в виде двух, модулей, емкостью по 1 Кбайту. В первом модуле хранится "Монитор", второй зарезервирован за пользователем.

Блок регистров включает семь программно доступных 8-разрядных регистра А, В, С, Д, Е, Н, L. Из них регистр А, называемый аккумулятором, предназначен для обмена информацией с внешними устройствами (т.е. либо содержимое этого регистра может быть выдано на выход, либо со входа в него может быть принято число) при выполнении арифметических, логических операций и операций сдвига. Он служит источником операнда (числа, участвующего в операции), в него помещается результат выполнения операции

Шесть других регистров В, С, Д, Е, Н, L образуют так называемый блок регистров общего назначения (РОН) (название связано с тем, что эти регистры могут использоваться для хранения как данных, так и адресов).

Они предназначены для приема, хранения и выдачи различной информации, участвующей в процессе выполнения программы. Эти регистры могут использоваться как одиночные 8-разрядные регистры, а когда возникает необходимость хранить 16-разрядные двоичные числа, они объединяются в пары: ВС, СЕ, НL. Обмен информацией между этими регистрами и внутренней шиной данных осуществляется с помощью двух восьмиразрядных мультиплексоров, а с внешней шиной адреса — с помощью третьего мультиплексора (на схеме не показан) — шестнадцатиразрядного.

Буферные регистры 1 и 2, регистры W и Z используются как буферные, программно-недоступные регистры временного хранения информации. Так регистры W и Z предназначены для приема и временного запоминания второго и третьего байтов команды переходов, передаваемых с внутренней шины данных в счетчик команд. Указатель стека SР (16-разрядный) служит для адресации особого вида памяти, называемого стеком. Счетчик команд РS (16 разрядный) предназначен для хранения адреса команды, после выбора из ОЗУ текущей команды содержимое счетчика увеличивается на единицу и таким образом формируется адрес очередной команды (при отсутствии безусловных и условных переходов).

Система команд МП КР580ВМ80А. В зависимости от типа команда может быть выполнена за один, два и т.д. циклов. Самые длинные по времени исполнения команды выполняются в пять циклов (М1 … М5). Каждый цикл включает в себя от 3 до 5 тактов (Т1 … Т5). Первые три такта во всех циклах используются для организации обмена с памятью и УВВ, такты Т4 и Т5 (если они присутствуют в цикле) - для выполнения внутренних операций в микропроцессоре. В течении одного такта выполняется одна микрокоманда.

При выполнении команды в такте Т1 содержимое счетчика команд выдается на шину адреса ША. В этом же такте МП выдает на шину данных ШД 8-разрядное управляющее слово, информирующее о том, что будет происходить в данном машинном цикле, и формирует специальный сигнал синхронизации SYNC, по которому это слово записывается в буферный регистр внешних схем управления. Управляющее слово (слово состояния процессора) указывает тип выполняемого машиною цикла. В табл. 1.2 приведено назначение отдельных разрядов кода состояния.

Набор команд МП КР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

Записать в последовательные ячейки ОЗУ микропроцессора числовые значения. Выполнить заданное действие и записать результат в ячейку ОЗУ.

Вычислить выражение c = a + b – 3, где a = 8, b= -11.

Адрес

Код

Мнемокод

Комментарий

0800

21

LXI H,NACH

Загрузка адреса начала массива в пар регистр HL.

0801

20

0802

08

0803

7E

MOV A,M

Загрузка числа A в аккумулятор МП

0804

23

INX H

Формирование адреса числа Х2

0805

86

ADD M

A+B, результат в аккумуляторе МП

0806

D6

SUI B2

Вычитание константы из аккумул.

0807

03

0808

23

INX H

Формирование адреса ячейки пампамяти для размещения результата

0809

77

MOV M,A

Пересылка результата в ячейку ОП

080A

76

HLT

Останов.

0820

08

число A

0821

F4

число B

0822

результат

Необходимо, с помощью команд, ввести имеющиеся параметры, и произвести вычисления.

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

Для написания программы мы использовали ячейки 0800-080А.

Для задания исходных данных — 0820-0821.

Результат записали в ячейку0822.

При выполнении программы получили значение F9.

Задание №3

Записать в последовательные ячейки ОЗУ микропроцессора 10 целых чисел, положительных и отрицательных (количество тех и других по выбору, в соответствии с задачей), это массив a1, a2, … , a10.

Найти количество элементов массива больше 2.

Адрес

Код

Мнемоника

Комментарии

0800

21

LXIHL

Загрузка в регистр HL адреса 0820,

0801

20

первого элемента массива

0802

08

0803

06

MVI B

Запись в регистр B числа 10 - счетчика цикла

0804

0A

0805

16

MVI D

Запись в регистр D числа 0

0806

00

0807

0E

MVI C

Запись в регистр C числа 3

0808

02

0809

7E

MOV A,M

Загрузка в Аккум из ячейки памяти

080A

B9

CPI B2

Сравнение аккум. с ркгистром С

080B

D2

JC

Если рег А<2, то переход по адресу 080F

080C

0F

080D

08

080E

14

INX D

D=D+1

080F

23

INX HL

Переход к след элементу (HL)+1->(HL)

0810

05

DCR B

Уменьшение счетчика цикла на 1 (B)-1->(B)

0811

78

MOV A,B

Пересылка данных из регистра B в регистр A

0812

FE

CPI B2

Сравнение аккум. с конст.

0813

00

0814

C2

JP

Если в рег А не 0, то переход по адресу 0809

0815

09

0816

08

0817

7A

MOV А,D

Загрузка числа из регистра D в аккумулятор

0818

77

MOV A,M

Загрузка числа аккумулятора в ячейку 082А

0819

76

HLT

Стоп

…

…

…

…

0820

00

A1

Первый элемент массива

0821

00

A2

Второй элемент массива

0822

00

…

…

0823

01

…

…

0824

01

0825

03

0826

04

0827

05

0828

01

0829

01

082A

результат

Необходимо с помощью команд ввести программу и массив чисел, и произвести вычисления, согласно задания. В программе мы использовали двойной регистр HL, регистры В, С. Регистр В использовали как счетчик циклов, С — константу.

Специализированный регистр СчАК в процессе выполнения программы всегда указывает на текущую выполняемую строку. При считывании кода команды значение счетчика увеличивается на один или два (в зависимости от длины команды). При выполнении команд безусловного и условного переходов содержимое счетчика резко меняется. В него записывается новое значение адреса.

Для записи программы мы использовали ячейки памяти 0800-0819.

Для записи массива - 0820-0829.

БЛОК СХЕМА:

Начало(A=0, B=0,D=0)

HL=0820

B=10

A=HL

A>2

B=0

конец

нет

да

нет

да

HL=HL+1

B=B-1

D=D+1

082A=D