КР по ВМИС, вариант 13 -заочники, 5 сессия
.docxЗадание №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><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
Записать в последовательные ячейки ОЗУ микропроцессора числовые значения. Выполнить заданное действие и записать результат в ячейку ОЗУ.
Вычислить выражение c = a + b – 3, где a = 2, b= -4.
Адрес |
Код |
Мнемокод |
Комментарий |
0800 |
21 |
LXI H,NACH |
Загрузка адреса начала массива в пару регистров HL. В дальнейшем видим, что адрес NACH = 0820 |
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 |
02 |
NACH |
число A |
0821 |
FC |
|
число B |
0822 |
результат |
|
|
Задание №3
Записать в последовательные ячейки ОЗУ микропроцессора 10 целых чисел, положительных и отрицательных (количество тех и других по выбору, в соответствии с задачей), это массив a1, a2, … , a10.
Найти сумму элементов массива от последнего нуля в массиве.
Адрес |
Код |
Мнемоника |
Комментарии |
|
0800 |
21 |
LXIHL |
Загрузка в регистр HL адреса 0820, |
|
0801 |
29 |
|
первого элемента массива |
|
0802 |
08 |
|
|
|
0803 |
06 |
MVI B |
Запись в регистр B числа 10 - счетчика цикла |
|
0804 |
0A |
|
|
|
0805 |
16 |
MVI D |
Запись в регистр D числа 0 |
|
0806 |
00 |
|
|
|
0807 |
AF |
XRAA |
Очистка регистра A |
|
0808 |
7E |
MOV A,M |
Загрузка числа в аккумулятор МП |
|
0809 |
FE |
CPI B2 |
Сравнение аккум. с конст. |
|
080A |
00 |
|
|
|
080B |
C2 |
JNZ |
Если рег А!=2, то переход по адресу 0811 |
|
080C |
11 |
|
|
|
080D |
08 |
|
|
|
080E |
C3 |
JMP |
Переход к 081B |
|
080F |
1B |
|
|
|
0810 |
08 |
|
|
|
0811 |
82 |
ADD D |
Сложение содержимого регистра и аккумул. |
|
0812 |
57 |
MOV A,D |
Пересылка данных из регистра D в регистр A |
|
0813 |
2B |
DCX HL |
Переход к след элементу (HL)-1->(HL) |
|
0814 |
05 |
DCR B |
Уменьшение счетчика цикла на 1 (B)-1->(B) |
|
0815 |
78 |
MOV A,B |
Пересылка данных из регистра B в регистр A |
|
0816 |
FE |
CPI B2 |
Сравнение аккум. с конст. |
|
0817 |
00 |
|
|
|
0818 |
F2 |
JP |
Если в рег А не 0, то переход по адресу 0807 |
|
0819 |
07 |
|
|
|
081A |
08 |
|
|
|
081B |
21 |
LXIHL |
Загрузка в регистр HL адреса 082A, |
|
081C |
2A |
|
|
|
081D |
08 |
|
|
|
081E |
72 |
MOV M,D |
Загрузка числа в аккумулятор МП |
|
081F |
76 |
HLT |
Стоп |
|
|
|
|
|
|
|
|
|
|
|
… |
… |
… |
… |
|
0820 |
01 |
A1 |
Первый элемент массива |
|
0821 |
01 |
A2 |
Второй элемент массива |
|
0822 |
01 |
… |
… |
|
0823 |
01 |
… |
… |
|
0824 |
01 |
|
|
|
0825 |
02 |
|
|
|
0826 |
04 |
|
|
|
0827 |
FF |
|
|
|
0828 |
01 |
|
|
|
0829 |
01 |
|
|
|
082A |
|
|
результат |
БЛОК СХЕМА:
Начало(A=0, B=0, D=0)
HL=0829
B=10
A=HL
A=0
B=0
конец
да
нет
нет
да
HL=HL-1
B=B-1
D=A+D
HL=082A
082A=D