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

Контрольная ВМИС вар 8

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

Задание 1. Устройство микропроцессора.

    • Разрядность, быстродействие.

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

    • Система команд.

КР580ВМ80А — 8-разрядный микропроцессор, полный аналог микропроцессора Intel i8080A (1974 год). Является основным элементом микропроцессорного комплекта серии КР580. Разработка Киевского НИИ микроприборов. В различных вариантах выпускался с конца 1970-х годов (наиболее раннее из упоминаний — использован в прототипе компьютера СМ1800, 1979 год) до середины 1990-х годов.

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

Рисунок 1- Структурная схема КР580ВМ80А.

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

система счисления — двоичная;

форма представления чисел — с фиксированной запятой;

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

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

число команд — базовых 78, общее число — 244;

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

максимальное число адресуемых внешних устройств

ввода/вывода — 256/256;

число уровней прерывания — 8;

тактовая частота, МГц <= 2,5;

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

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

напряжение питания, В — +5; 5; +12;

потребляемая мощность, Вт — 1,25 – 1,5.

емкость оперативного запоминающего устройства (ОЗУ) – 1 Кбайт;

емкость постоянного запоминающего устройства (П3У) – 2 Кбайта;

Система команд — соглашение о предоставляемых архитектурой средствах программирования, а именно: определённых типах данных, инструкций, системы регистров, методов адресации, моделей памяти, способов обработки прерываний и исключений, методов ввода и вывода.

Система команд представляется спецификацией соответствия (микро)команд наборам кодов (микро)операций, выполняемых при вызове команды, определяемых (микро)архитектурой системы. (При этом, на системах с различной (микро)архитектурой может быть реализована одна и та же система команд.

Базовыми командами являются, как правило, следующие:

- арифметические, например «сложения» и «вычитания»;

- битовые, например «логическое и», «логическое или» и «логическое не»;

- присваивание данных, например «переместить», «загрузить», «выгрузить»;

- ввода-вывода, для обмена данными с внешними устройствами;

- управляющие инструкции, например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».

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

Адрес

Содержимое (машинный код)

Ассемблерный код (мнемокод)

Комментарий

0800

21

LXI H, 0820

Занесение адреса числа а в пару регистров

0801

20

HL

0802

00

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

FB

A

0821

09

B

Числовая информация

0822

02

C

Задание 3.

Вариант 21

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

Найти количество отрицательных элементов массива.

Даны числа : -4, 7, 3, -8, 2, -7, 9, -10, 6, 1.Отрицательные записаны в дополнительном коде. По количеству отрицательных элементов массива 4.

Программа 3 [0800h-0824h]

Адрес

Код

Мнемокод

Комментарий

0800

21

LXI H,d16

Адресация к памяти

0801

1A

Адрес

0802

08

HL

0803

86

ADD M

Сложение регистра А с памятью

0804

CC

CZ adr

Массивы закончились, вывод результата

0805

12

Адрес

0806

08

подпрограммы

0807

FC

CM adr

Если массив отрицательный добавляется 1

0808

10

-

Адрес

0809

08

NOP

подпрограммы

080A

23

INX H

Инкремент HL

080B

3E

MVI A, d8

Обнуление регистра А

080C

00

NOP

080D

F4

CP adr

Повторение операции со следующим массивом

080E

03

INX B

Адрес

080F

08

NOP

Возврата

0810

04

INR B

Считается количество отрицательных массивов

0811

C9

RET

Безусловный выход

0812

78

MOV A, B

Занесение значения регистра В в А

0813

32

STA adr

Вывод результата по адресу

0814

17

RAL

Адрес

0815

08

NOP

Результата

0816

76

HLT

Стоп

0817

04

INR B

Результат

0818

08

NOP

0819

08

NOP

081А

FC

CM adr

Массивы из условия

081В

07

RLC

081С

03

INX B

081D

F8

RM

081E

02

STAX B

081F

F9

SPHL

0820

09

DAD B

0821

F6

ORI d8

0822

06

MVI B, d8

0823

01

LXI B, d16

0824

08

NOP

В программе использовали регистр В для подсчета результата, пару регистров HL , как ячейка памяти. Были применены условные команды перехода по состоянию флага

(плюс, минус и ноль ).

Работа программы: по адресу 001А – 0023 занесли значения массивов. Прибавляем значение первого массива к АК (к 0) проверяем значение по состоянию флага на положительное , отрицательное число либо содержимое АК равно ноль. Если число положительное берем следующий массив обнуляем АК и повторяем операцию. Если число отрицательное прибавляем в регистр В единицу , начальное его значение ноль. Адрес подпрограммы 0010 – 0011.Повторяем операцию со следующим массивом, АК обнуляется.

Если АК равен 0, то это говорит ,что массивы закончились, по условию массив не равен нулю, переходим в подпрограмму 0012 - 0015, где значение регистра В записываем в регистр А и передаем в ячейку памяти этот результат по адресу 0017. Программа останавливается.