г.) Построение схемы автомата .
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 Кб.
Для ОЗУ можно выбрать МС nМОП типа КМ132РУ8А с организацией 1К * 4 = 0,5 Кб. Но для построения одного сегмента потребуется четыре такие МС .
С резервом в 2Кб для ОЗУ потребуется три таких сегмента .
Значит, общий объём блока ЗУ с резервом должен составлять 8+3 = 11 сегментов .
б.) Составим таблицу распределения адресов .
Сегмент | 16-разрядный адрес |
I | 00E0 – 08DF |
08E0 – 10DF | |||
III | 10E0 – 18DF | ||
|
18E0 – 20DF | |||
V | 20E0 – 28DF | ||
|
28E0 – 30DF | |||
VII | 30E0 – 38DF | ||
VIII | 38E0 – 40DF | ||
|
40E0 – 48DF | |||
|
48E0 –50DF | |||
XI | 50E0 –58DF |
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 часть : Подпрограмма .