Реферат: Вычислительная техника
Q1
Q2
Q3
y
Cвых
г.) Построение схемы автомата
.
II часть : Проектирование
интерфейса ЗУ некоторого МПУ .
Построить интерфейс ЗУ на реальных МС , приведённых в
таблице .
Блоки ПЗУ и ОЗУ должны содержать резервные места для
модернизации . Резерв может быть до 50% рабочего и объёма блока , но не менее 1
МС выбранного типа .
При условии восьмиразрядного
выхода требуется :
-
определить объём пространства
памяти , включая резервные сегменты ;
-
составить таблицу адресов ,
начиная с адреса 0ХХ0, где ХХ = n – номер студента по журналу в
16-ричной системе ;
-
построить упрощённую
схему интерфейса .
При построении блока ПЗУ использовать
МС ППЗУ серии КР556 для Lпзу < 6 Кб и МС СППЗУ ( К573 ) для Lозу >
7Кб .
При построении блока ОЗУ -
МС с технологией : ТТЛ для Lозу < 3 Кб , И*ИЛ для 7Кб < Lозу <
9 Кб , МОП для 4КБ < Lозу < 6Кб .
При полу целом числе сегментов в блоке допускается
использование МС другой технологии с ёмкостью 0,5 сегмента . Остаток неполного
сегмента отнести к резерву .
Решение поставленной
задачи :
а.) Определим объём пространства памяти , включая
резервные сегменты .
Для ПЗУ можно выбрать пять МС СППЗУ типа К573РФ2 с
организацией 2К * 8 = 2Кб .
Тогда объём одного сегмента
можно выбрать равным 2 Кб = 80016. Возьмем пять таких МС и , таким образом , получили
объём ПЗУ равным 10 Кб , но нам необходимо набрать 11 Кб , поэтому возьмём ещё
две МС СППЗУ типа К573РФ1 с организацией 1К*8 = 1Кб для организации шестого
сегмента , половина которого будет использована , а другая половина будет в
резерве.
Для резерва возьмём две МС СППЗУ типа К573РФ2 с
организацией 2К * 8 = 2Кб , т.е. объём резерва получился равным 5 Кб.
С резервом в 5 Кб для ПЗУ получили восемь сегментов.
Для ОЗУ можно выбрать МС nМОП
типа КМ132РУ8А с организацией 1К * 4 = 0,5 Кб. Но для построения одного
сегмента потребуется четыре такие МС .
С резервом в 2Кб для ОЗУ
потребуется три таких сегмента .
Значит, общий объём
блока ЗУ с резервом должен составлять 8+3 = 11 сегментов
.
б.) Составим таблицу распределения адресов .
Сегмент
|
16-разрядный адрес |
I
|
00E0 – 08DF |
II
|
08E0 – 10DF |
III |
10E0 – 18DF |
IV
|
18E0 – 20DF |
V |
20E0 – 28DF |
VI
|
28E0 – 30DF |
VII |
30E0 – 38DF |
VIII |
38E0 – 40DF |
IX
|
40E0 – 48DF |
X
|
48E0 –50DF |
XI |
50E0 –58DF |
в.) Построение упрощённой
схемы интерфейса ЗУ .
III часть
: Разработка фрагмента программы МПУ .
Составить фрагмент
программы МПУ в виде подпрограммы ( или в виде программы обслуживания
прерывания ПОП ) , что есть в варианте .
Начальный адрес для подпрограммы : [ P
] = 63 + n10
Требуется :
-
на языке Ассемблера с соблюдением
требований формата бланка ;
-
комментарий должен давать полное описание действий конкретной задачи , а
не описание данной команды ;
-
в конце любого комментария должна быть дана продолжительность операции –
требуемое число тактов синхронизации.
Решение поставленной задачи :
; Подпрограмма на языке Ассемблер :
|
|
|
ORG |
00D4H |
;Подпрограмма начинается с
;адреса 00D416
|
|
|
|
LXI |
D,0200H |
;бл.1Загрузка адреса младшего
;байта числа Х1 в пару
;регистров DE
(т.10)
|
|
|
|
MVI |
B,0002H |
;бл.2 Подготовка счётчика
;сложений, т.е.непосредствен-;ное присвоение регистру В
;значения 2
(т.7)
|
|
|
|
XRA |
A |
;бл.3 Обнуление аккумулятора ,
;а также установка в ноль тр-
;ров переноса Tc и
Tv (т.4)
|
|
|
LOOP2: |
LXI |
H,0300H |
;бл.4 Загрузка адреса младшего
;байта числа Х2 или (Х1+Х2) в
;пару регистров HL (т.10)
|
|
|
|
MVI |
C,0006H |
;бл.5 Подготовка счётчика
;байтов , т.е. непосредственное
;присвоение счётчику байтов С
;значения 6 , т.к. после
;сложения Х1 и Х2 может
;возникнуть перенос и число
;окажется уже в 6 байтах, а не в 5 (т.7)
|
|
|
LOOP1: |
LDAX |
D |
;бл.6 Загрузка в аккумулятор
;следующего байта числа Х1
;или Х3, хранящегося по адресу
;в паре DE
(т.7)
|
|
|
|
ADC |
M |
;бл.7 Суммирование байтов
;чисел Х1 или Х3 и Х2 или
;(Х1+Х2) , а также переноса,
;если такой был
(т.4)
|
|
|
|
DAA |
|
;бл.8 Десятичная коррекция ;аккумулятора(т.к. у
меня коды
;BCD и максимальное число
;здесь 9, а не 16 ) (т.4)
|
|
|
|
MOV |
M,A |
;бл.9 Пересылка очередного
;байта частичной суммы
;(Х1+Х2) на место Х2 (т.7)
|
|
|
|
DCR
|
C |
;бл.10 Уменьшение на 1
;счётчика байтов (т.5)
|
|
|
|
JZ |
NB |
;бл.11 УП: если содержимое сч.
;байтов равно 0 ( С = 0 ), то
;переход к бл. 15 , если же С =0,
;т.е. ещё не все байты чисел
;сложены, то переход к
;суммированию след. байтов,
;т.е. к блоку 12 (т.10)
|
|
|
|
INХ |
D |
;бл.12 Переход к адресу
;следующего байту числа Х1
;или Х3 путём положительного
;инкремента пары регистров DE
(т.5)
|
|
|
|
INХ |
H |
;бл.13 Переход к адресу
;следующего байта числа Х2
;или (Х1+Х2) путём
;положительного инкремента
;пары регистров HL (т.5)
|
|
|
|
JMP |
LOOP1 |
;бл.14 БП к блоку 6 для
;суммирования след. байтов
;чисел Х1 и Х2 либо Х3 и
;(Х1+Х2)(к началу внешнего цикла) (т.10)
|
|
|
NB
: |
DCR |
B |
; бл.15 Переход к суммированию суммы ;Х1+Х2 с
числом Х3, т.е. уменьшение ;счётчика сложений на 1 (т.5)
|
|
|
|
RZ |
EN |
;бл.16 УП : если В=0 , т.е. все три числа ;сложены
, то возврат в основную ;программу , ежели В = 0 , т.е. не все числа ;сложены
, то переход к след. блоку 17 (т.10)
|
|
|
|
LXI |
D,0400H |
;бл.17 Загрузка адреса младшего байта числа ;Х3 в
пару регистров DE (т.10)
|
|
|
|
JMP |
LOOP2 |
; бл.18 БП к блоку 4 для суммирования числа ;Х3 с
суммой ( Х1+Х2) (к началу внешнего ;цикла ) т.10)
|
|
|
EN
: |
END |
|
; конец подпрограммы |
|
III часть : Подпрограмма .
Сложить три положительных 10 – значных десятичных числа Х1,
Х2, Х3 , представленные в коде BCD и хранящиеся в
секторах ОЗУ с адресами младших байтов соот. 20016; 30016; 40016 .
Поместить полученную сумму (также в коде BCD)
с учётом старшего (шестого) байта на случай переполнения в секторе ОЗУ на место
Х2, т.е. по адресу 30016 .
Предполагается, что шестые байты в указанных секторах
первоначально пусты.
Это – задача с двойным (вложенным) циклом.
Блок – схема алгоритма :
Задание:
I часть
: Счётчик прямого счёта .
М = 13 ; триггеры типа JK.
Код двоичный, возрастающий;
Используются состояния : а0 ,
а1 … а12 .
II часть
: Интерфейс ЗУ .
Lпзу = 11 KB ; Lозу = 4 KB .
III часть
: Подпрограмма .
Сложить три положительных 10
– значных десятичных числа Х1, Х2, Х3 , представленные в коде BCD и
хранящиеся в секторах ОЗУ с адресами младших байтов соот. 20016; 30016; 40016 .
Поместить полученную сумму
(также в коде BCD) с учётом старшего (шестого) байта на случай
переполнения в секторе ОЗУ на место Х2, т.е. по адресу 30016 .
Предполагается, что шестые
байты в указанных секторах первоначально пусты.
Это – задача с двойным
(вложенным) циклом.
Блок – схема алгоритма :
|