Реферат по предмету "Программирование"


Микропроцессорные средства и системы

Микропроцессорные
средства и системы

Контрольное
задание, вариант № 7

Группа Э-41-З,
студент **********

Министерство
Образования Украины

Кременчугский
Государственный Политехнический Институт

Кременчуг 1998

Преобразовать
числа из десятичной системы счисления в двоичную и шестнадцатеричную : 5 ; 38 ;
93 ; 175 ; 264.




Десятичная система





Двоичная система





Шестнадцатеричная система







5









0





0





0





0





40





0





1





0





1









5







38









0





0





0





1





0





0





1





1





0









26







93









0





0





1





0





1





1





1





0





1









5D







175









0





1





0





1





0





1





1





1





1









AF







264









1





0





0





0





0





1





0





0





0









108







Задача № 2

Преобразовать
числа, записанные в прямом двоичном коде в десятичный и шестнадцатеричный код
:  0011 ; 1000010 ; 00011011000 .




Прямой двоичный код





Десятичный код





Шестнадцатеричный код











0





0





0





0





0





0





0





0





0





1





1









3





3











0





0





0





0





1





0





0





0





0





1





0









66





42











0





0





0





1





1





0





1





1





0





0





0









216





D8







Задача № 3

Выполнить
следующие арифметические действия с двоичными числами, заданными в прямом коде
: 0011 + 1000110 ; 10000001 - 1000110













+

















0





0





1





1














+









3










-





1





0





0





0





0





0





0





1










-





1





2





9



















1





0





0





0





1





1





0

















7





0

















1





0





0





0





1





1





0

















7





0



















1





0





0





1





0





0





1

















7





3













0





0





1





1





1





0





1





1

















5





9
































































































































Задача № 4

Выполнить
следующее арифметическое действие в 8-ми разрядной сетке ( старший бит содержит
знак числа ) : 5 х 25









х





0





.





0





0





1





1





0





0





1















х





2





5








































































0





.





0





0





0





0





1





0





1





















5















































































0





0





1





1





0





0





1































































































0





0





0





0





0





0





0































































































0





0





1





1





0





0





1



































































































0





.





1





1





1





1





1





0





1













1





2





5






























































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

Задача № 1

Определить
размер памяти в килобайтах ( байтах ), если данная память адресуется с адреса A0EDH по адрес EF34H.
Одна ячейка памяти занимает 8 бит

Для решения
определим вначале кол-во ячеек памяти, адресуемых одним разрядом при 16-
теричной системе адресации.




4-й
разряд





3-й
разряд





2-й
разряд





1-й
разряд





H







4096





256





16





1





H






Таким образом,
начальный и конечный адреса в десятичной системе будут :

A0EDH = 4096 * 10 + 256 * 0 + 16 * 14 + 1 * 13
+ 1= 41198 ;

EF34H  =
4096 * 14 + 256 * 15 + 16 * 3 + 1 * 4 +1 = 61237 .

61237 - 41198 =
20039.

20039 = 19 *
1024 + 583.

Итак, размер
памяти будет 20039 байт или 19 кБ. 583 байт

Задача № 2

Символьная
строка расположена в ОЗУ начиная с адреса 0006H. Известно, что под каждый символ
отводится одна ячейка памяти. Число символов в строке = 731. Определить адрес
для обращения к последнему символу строки.

Порядковый
номер последней ячейки памяти в десятичной системе будет 731 + 6 = 737.
Переведем 738 из десятичной системы в двоичную :

73710
= 0010111000012

Теперь  переводим в 16 - теричную : 0010111000012
= 02E116   

Ответ : адрес
последнего символа 02E1H

Задача № 3

Составить
программу на Ассемблере с комментариями :

Подсчитать
число символов в строке, расположенной в области начиная с адреса 1000H и заканчивая адресом 2000H без учета пробелов, если известно, что
каждый символ занимает одну ячейку памяти и пробел кодируется как 01H.

Максимальное
число символов в строке 2000h -1000h=1000h=409610

После
выполнения программы результат будет помещен в HL.

LXI SP,3000h ; указание вершины стека

LXI H,1000h ; адрес 1-го элемента => в HL

LXI D,1000h ; загрузка счетчика в D,E

XRA A ;
обнуление аккумулятора

STA
2001h ; обнуление счетчика
количества символов

STA
2002h ; обнуление счетчика
количества символов

MVI B,01h ; код пробела => в В

LOOP:

MOV A,M ; загрузить символ из ячейки М в
аккумулятор

CMP B ;
проверка на код пробела

JNZ COUNT
; если не совпадает, переход к COUNT, иначе - дальше

INX H ;
адрес следующего символа

DCX D ;
уменьшить счетчик

JZ EXIT
; если счетчик = 0, на выход

JMP LOOP
; в начало цикла

COUNT:

PUSH H ;
выгрузить содержимое HL в стек

LHLD
2001h ; загрузить HL содержимым счетчика количества символов

INX H ;
увеличить счетчик на 1

SHLD
2001h ; сохранить счетчик
количества символов в 2001h, 2002h

POP H ;
восстановить в HL
сохраненный адрес

RET  ; возврат из подпрограммы

EXIT:

LHLD
2001h ; загрузить HL содержимым счетчика количества символов

END

Задача № 4

Составить
программу на Ассемблере, направленную на решение математической функции :

Z = lg(x+1)

Натуральный и
десятичный логарифмы одного и того же числа (в данном случае  - выражения) связаны простым соотношением,
позволяющим переходить от одного к другому :

lg x = Mlnx , где M = 1/ln10 = 0,434294481903252…

т.е.,
десятичный логарифм числа  x = натуральному логарифму этого же числа,
умноженному на постоянный множитель M = 0,434294481903252…, называемый модулем перехода от
натуральных логарифмов к десятичным.

В соответствии
с вышесказанным, lg (x+1) = 0,434294481903252…* ln(x+1)

Для вычисления ln(x+1) используем разложение в ряд :

ln(x+1) = x-x2/2+x3/3-x4/4+x5/5-x6/6+x7/7-x8/8+…

В результате
алгоритм решения сводится к четырем арифметическим действиям : + ; - ; * ; /.

Перед
выполнением арифметических действий над числами с плавающей запятой условимся
первое число размещать в регистрах EHL, второе – в регистрах DBC; результат операции оставлять в EHL.

Формат
представления чисел с плавающей запятой :




S





P





P





P





P





P





P





P





P





M





M





M





M





M





M





M





M





M





M





M





M





M





M





M











7





6





5





4





3





2





1





0





1





2





3





4





5





6





7





8





9





10





11





12





13





14





15







1-й
байт





2-й
байт





3-й
байт






Где : S – знак числа ( 1-отрицательный,
0-положительный ), P0…P7 – 8-битный смещенный порядок, M1 … M15 – мантисса . Скрытый бит целой части
мантиссы в нормализованных числах содержит 1




1000h





X







1001h







1003h







1003h





X2







1004h







1005h







1006h





X3







1007h







1008h







1009h





X4







100Ah







100Bh







100Ch





X5







100Dh







100Eh







100Fh





X6







1010h







1011h







1012h





X7







1013h







1014h







1020h





Адрес
ячейки с текущим XN







1021h







1022h





Текущий
N






До начала
вычислений число Х должно быть размещено в памяти по адресам 1000h-1002h.;начало цикла вычислений

CALC1:

LXI H,1003h ;
сохранение адреса первой ячейки

SHLD 1020h ;
для хранения XN

CALL LOAD ;
Загрузка Х в EHL

;цикл
вычисления XN

CALC2: CALL
LOAD1 ;Загрузка Х в DBC CALL MULF ; Умножение чисел с плавающей точкой

MOV B,H ; HL=>BC

MOV C,L

LHLD 1020h
;загрузить адрес ячейки памяти для хранения Хn

MOV M,E ;Хn
=> в память

INX H

MOV M,B

INX H

MOV M,C

INX H

SHLD 1020h
;запомнить адрес ячейки памяти для следующего Хn

MOV H,B ;BC=>HL

MOV L,C

LDA 1021h
;содержимое ячейки => в аккумулятор

CPI 15h ;если
получены все значения Хn,

JZ CALC3
;переход на CALC3

JMP CALC2
;иначе- в начало

CALC3:

LXI H,1022h ;

MVI M,01h
;загрузить в ячейку 1022h делитель

LXI H,1003h ;

SHLD 1020h
;содержимое HL
=> в память

;цикл
вычисления XN/NCALC4:
MOV B,H ; HL=>BC MOV C,L  LHLD 1020h
;загрузить адрес ячейки памяти для хранения N MOV E,M ;Хn => в
регистры INX H  MOV B,M  INX H MOV C,M  SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn

MOV H,B ;BC=>HL

MOV L,C

PUSH H ;

LXI H,1022h ;N
=> в ячейку С

MOV C,M

POP H ;

MVI D,00h

MVI B,00h

CALL DIVF ;
Деление чисел с плавающей точкой

MOV B,H ; HL=>BC

MOV C,L

LHLD 1020h
;загрузить адрес ячейки памяти для хранения Хn/N

DCX H ;

DCX H ;

MOV M,E ;Хn/N
=> в память

INX H

MOV M,B

INX H

MOV M,C

INX H

SHLD 1020h
;запомнить адрес ячейки памяти для следующего Хn/N

MOV H,B ;BC=>HL

MOV L,C

PUSH H ;

LXI H,1022h ;N
=> в ячейку С

MOV C,M
;инкремент N

INR C

MOV M,C

POP H ;

LDA 1021h
;содержимое ячейки => в аккумулятор

CPI 15h ;если
получены все значения Хn,

JZ CALC5
;переход на CALC5

JMP CALC4
;иначе- в начало

CALC5:

LXI H,1003h ;

SHLD 1020h ;

  ;

CALC6:

LHLD 1020h
;загрузить адрес ячейки памяти для хранения N

MOV D,M ;Хn/N
=> в регистры D,B,C.

INX H

MOV B,M

INX H

MOV C,M

INX H

SHLD 1020h
;запомнить адрес ячейки памяти для следующего Хn/N

  ;

;вычисление ln(x+1)

CALC7: CALL
LOAD ; Загрузка Х в EHL CALL SUBF ; Вычитание чисел с плавающей точкой  CALL CALC8 ; загрузка Хn+1/N+1 в
регистры D,B,C. CALL ADDF ; Сложение чисел с плавающей точкой  CALL CALC8 ; загрузка Хn+1/N+1 в
регистры D,B,C. CALL SUBF ; Вычитание чисел с плавающей точкой

CALL CALC8 ;
загрузка Хn+1/N+1 в регистры D,B,C.

CALL ADDF ;
Сложение чисел с плавающей точкой

CALL CALC8 ;
загрузка Хn+1/N+1 в регистры D,B,C.

CALL SUBF ;
Вычитание чисел с плавающей точкой

CALL CALC8 ;
загрузка Хn+1/N+1 в регистры D,B,C.

CALL ADDF ;
Сложение чисел с плавающей точкой

CALL CALC8 ;
загрузка Хn+1/N+1 в регистры D,B,C.

MVI D,00h ;
загрузка модуля пере-

MVI B,2Bh ;
хода в DBC

MVI C,2Bh  

CALL MULF ;
Умножение ln(x+1) на модуль перехода к lg

JMP EXIT ; на
выход

  ;;загрузка Хn+1/N+1 в регистры
D,B,C.CALC8: PUSH H LHLD 1020h ;загрузить адрес ячейки памяти для хранения N
MOV D,M ;Хn/N => в регистры D,B,C. INX H  MOV B,M 
INX H MOV C,M INX H SHLD 1020h ;запомнить адрес ячейки памяти для
следующего Хn/N

POP H ;

RET  ;

  ;

EXIT:

HLT  ; Останов

  ;

  ;

  ;

;Загрузка Х в
EHLLOAD: LXI H,1000h ;загрузка в HL адреса порядка Х MOV E,M ;загрузка порядка
Х в Е LHLD 1001h ;загрузка мантиссы в HL

RET  ;

;Загрузка Х в
DBC

LOAD1:

PUSH H
;выгрузка в стек HL

LXI H,1000h
;загрузка в HL адреса порядка Х

MOV D,M
;загрузка порядка Х в D

INX H ;

MOV B,M ;

INX H ;

MOV C,M
;загрузка мантиссы в BC

POP H ;загрузка
из стека HL

RET  ;

;Образование
дополнительного кода числа в регистре HL

comp:

mov A,H ;

CMA  ;

MOV H,A ;

MOV A,L ;

CMA  ;

MOV L,A ;

INX H ;

RET  ;

;Проверка знака
и образование дополнительного кода

NEG:

MOV A,E ;

ORA E ;

JP NOTDK ;

CALL COMP ;
Образование дополнительного кода числа в регистре HL

NOTDK: RET ;

 

;Сдвиг
содержимого HL вправо на 1 бит:

SHIFT:

MOV A,H ;

RAR  ;

MOV H,A ;

MOV A,L ;

RAR  ;

MOV L,A ;

RET  ;

;Обмен
содержимого регистров EHL и DBC

SWAP:

PUSH B ;

XTHL  ;

POP B ;

MOV A,D ;

MOV D,E ;

MOV E,A ;

RET  ;

 

;Восстановление
числа с плавающей точкой

REC:

MOV A,H ;

ADD A ;

MOV A,E ;

RAL  ;

MOV E,A ;

MOV A,H ;

ORI 80H ;

MOV H,A ;

RET  ;

;Преобразование
числа в стандартный формат

PACK:

LDA SIGN ;

ADD A ;

MOV A,E ;

MOV D,A ;

RAR  ;

MOV E,A ;

MOV A,H ;

ANI 7FH ;

MOV H,A ;

MOV A,D ;

RRC  ;

ANI 80H ;

ORA H ;

MOV H,A ;

RET  ;

;Сложение чисел
с плавающей точкой

ADDF:

MOV A,D ;

XRA E ;

JP ADDF1 ;

MOV A,D ;

XRI 80H ;

MOV D,A ;

JMP SUBF ;

  ;

ADDF1:

MOV A,D ;

ORA B ;

ORA C ;

JZ ADDF8 ;

MOV A,E ;

ORA H ;

ORA L ;

JNZ ADDF2 ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

JMP ADDF8 ;

  ;

ADDF2:

MOV A,D ;

STA SIGN ;

CALL REC ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

CALL REC ;
Восстановление числа с плавающей точкой

  ;

MOV A,E ;

SUB D ;

JNC ADDF3 ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

MOV A,E ;

SUB D ;

  ;

; В EHL большее число, в аккумуляторе разность
потенциалов

ADDF3:

JZ ADDF6 ;

CPI 16 ;

JC ADDF4 ;

JMP ADDF7 ;

  ;

;Можно сдвигать
мантиссу меньшего числа

ADDF4:

MOV E,A ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

ADDF5:

ORA A ;

CALL SHIFT ;
Сдвиг содержимого HL вправо на 1 бит:

INR E ;

DCR D ;

JNZ ADDF5 ;

  ;

;В регистре Е
общий порядок. Можно складывать мантиссы

ADDF6:

DAD B ;

JNC ADDF7 ;

INR E ;

JZ ADDF8 ;

ORA A ;

CALL SHIFT ;
Сдвиг содержимого HL вправо на 1 бит:

  ;

ADDF7:

CALL PACK ;
Преобразование числа в стандартный формат

  ;

ADDF8:

RET  ;

  ;

 

;Вычитание
чисел с плавающей точкой

SUBF:

MOV A,D ;

XRA E ;

JP SUBF1 ;

MOV A,D ;

XRI 80H ;

MOV D,A ;

JMP ADDF ;
Сложение чисел с плавающей точкой

SUBF1:

MOV A,D ;

ORA B ;

ORA C ;

JZ SUBFA ;

MOV A,E ;

ORA H ;

ORA L ;

JNZ SUBF2 ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

MOV A,E ;

XRI 80H ;

MOV E,A ;

JMP SUBFA ;

SUBF2:

MOV A,E ;

STA SIGN ;

CALL REC ;
Восстановление числа с плавающей точкой

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

CALL REC ;
Восстановление числа с плавающей точкой

MOV A,D ;

SUB E ;

JNZ SUBF3 ;

MOV A,B ;

CMP H ;

JNZ SUBF3 ;

MOV A,C ;

CMP L ;

JNZ SUBF3 ;

MVI E,0 ;

LXI H,0 ;

JMP SUBFA ;

  ;

;операнды не
равны, необходимо вычитать

SUBF3:

JNC SUBF4 ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

LDA SIGN ;

XRI 80H ;

STA SIGN ;

  ;

SUBF4:

MOV A,D ;

SUB E ;

JZ SUBF7 ;

CPI 16 ;

JC SUBF5 ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

JMP SUBF ;

  ;

;В регистре А разность
порядков, в DBC
больший операнд

SUBF5:

MOV E,A ;

SUBF6:

ORA A ;

CALL SHIFT ;
Сдвиг содержимого HL вправо на 1 бит:

DCR E ;

JNZ SUBF6 ;

  ;

;Вычесть
мантиссы, результат в EHL

SUBF7:

MOV A,C ;

SUB L ;

MOV L,A ;

MOV A,B ;

SBB H ;

MOV H,A ;

MOV E,D ;

  ;

;нормализовать
и проверить антипереполнение

SUBF8:

MOV A,H ;

ORA H ;

JM SUBF9 ;

DCR E ;

MOV A,E ;

CPI 0FFH ;

STC  ;

JZ SUBFA ;

DAD H ;

JMP SUBF8 ;

  ;

SUBF9:

CALL PACK ;
Преобразование числа в стандартный формат

SUBFA:

RET  ;

  ;

;Умножение
чисел с плавающей точкой

MULF:

MOV A,E ;

ORA H ;

ORA L ;

JZ MULF8 ;

MOV A,D ;

ORA B ;

ORA C ;

JNZ MULF1 ;

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

JMP MULF8 ;

  ;

;операнды
ненулевые, можно умножать

MULF1:

MOV A,D ;

XRA E ;

STA SIGN ;

CALL REC ;
Восстановление числа с плавающей точкой

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

CALL REC ;
Восстановление числа с плавающей точкой

MOV A,D ;

ADD E ;

JC MULF2 ;

SUI 127 ;

JNC MULF3 ;

JMP MULF8 ;

  ;

MULF2:

ADI 129 ;

JNC MULF3 ;

JMP MULF8 ;

  ;

;в аккумуляторе
А смещенный порядок произведения

MULF3:

MOV C,A ;

MOV E,B ;

MVI D,0 ;

MOV A,H ;

LXI H,0 ;

XCHG  ;

DAD H ;

XCHG  ;

  ;

;начало цикла
умножения

MULF4:

ORA A ;

RAR  ;

JNC MULF5 ;

DAD D ;

  ;

MULF5:

JZ MULF6 ;

XCHG  ;

DAD H ;

XHG  ;

JMP MULF4 ;

  ;

;проверить
нарушение нормализации

MULF6:

JNC MULF7 ;

CALL SHIFT ;
Сдвиг содержимого HL вправо на 1 бит:

INR C ;

STC  ;

JZ MULF8 ;

  ;

MULF7:

MOV E,C ;

CALL PACK ;
Преобразование числа в стандартный формат

  ;

MULF8:

RET  ;

  ;

;Деление чисел
с плавающей точкой

DIVF:

MOV A,E ;

ORA H ;

ORA L ;

JZ DIVF7 ;

MOV A,D ;

ORA B ;

ORA C ;

STC  ;

JZ DIVF7 ;

;операнды не
равны нулю

MOV A,D ;

XRA E ;

STA SIGN ;

CALL REC ;
Восстановление числа с плавающей точкой

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

CALL REC ; Восстановление
числа с плавающей точкой

CALL SWAP ;
Обмен содержимого регистров EHL и DBC

MOV A,E ;

SUB D ;

JNC DIVF1 ;

ADI 127 ;

CMC  ;

JC DIVF7 ;
возикло антипереполнение

JMP DIVF2 ;
перейти на деление мантисс

  ;

DIVF1:

ADI 127 ;
прибавить смещение

JC DIVF7 ;
возникло антипереполнение

  ;

;можно начинать
деление мантисс

DIVF2:

STA EXP ;

XCHG  ;

LXI H,0 ;

MVI A,16 ;
инициализировать счетчик

PUSH PSW ;

JMP DIVF4 ;
войти в цикл деления

  ;

DIVF3:

PUSH PSW ;

DAD H ;
сдвинуть влево

XCHG  ; частное и остаток

DAD H ;

XCHG  ;

  ;

DIVF4:

PUSH D ;
сохранить остаок в стеке

MOV A,E ;
вычесть делитель из остатка

SUB C ;

MOV E,A ;

MOV A,D ;

SBB B ;

MOV D,A ;

JC DIVF5 ;

POP PSW ;
удалить остаток из стека

INR L ;

PUSH D ;

  ;

DIVF5:

POP D ; извлечь
предыдущий остаток

POP PSW ;
извлечь счетчик

DCR A ;
декремент счетчика

JNZ DIVF3 ; повторить цикл деления

  ; деление мантисс закончено

LDA EXP ;

MOV E,A ;

  ; нормализовать частное

MOV A,H ;

ORA A ;

JM DIVF6 ;

DAD H ;

DCR E ;

CPI 0FFH ;
проверить антипереполнение

STC  ;

JZ DIVF7 ;
возникло антипереполнение

  ;

DIVF6:

CALL PACK ;
Преобразование числа в стандартный формат

DIVF7:

RET  ;

  ;

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

Задача № 1

Построить
модель распределения адресного пространства с указанием диапазонов адресов в
16-й системе счисления. В качестве дешифратора адресов используется стандартный
дешифратор, к информационным входам которого подключены линии А15, А12, А9
16-разрядной шины адреса.




Выходы дешиф-ратора





Разряды адреса





Диапазоны адресов







15





14





13





12





11





10





9





8





7





6





5





4





3





2





1





0







Y0





0





X





X





0





X





X





0





X





X





X





X





X





X





X





X





X





0000h-01FFh,
0400h-05FFh, 0800h-0DFFh


2000h-21FFh,
2400h-25FFh, 2800h-2DFFh


4000h-41FFh,
4400h-45FFh, 4800h-4DFFh


6000h-61FFh,
6400h-65FFh, 6800h-6DFFh







Y1





0





X





X





0





X





X





1





X





X





X





X





X





X





X





X





X





0200h-03FFh,
0600h-07FFh, 0A00h-0FFFh


2200h-23FFh,
2600h-27FFh, 2A00h-2FFFh


4200h-43FFh,
4600h-47FFh, 4A00h-4FFFh


6200h-63FFh,
6600h-67FFh, 6A00h-6FFFh







Y2





0





X





X





1





X





X





0





X





X





X





X





X





X





X





X





X





1000h-11FFh,
1400h-15FFh, 1800h-1DFFh


3000h-31FFh,
3400h-35FFh, 3800h-3DFFh


5000h-51FFh,
5400h-55FFh, 5800h-5DFFh


7000h-71FFh,
7400h-75FFh, 7800h-7DFFh







Y3





0





X





X





1





X





X





1





X





X





X





X





X





X





X





X





X





1200h-13FFh,
1600h-17FFh, 1A00h-1FFFh


3200h-33FFh,
3600h-37FFh, 3A00h-3FFFh


5200h-53FFh,
5600h-57FFh, 5A00h-5FFFh


7200h-73FFh,
7600h-77FFh, 7A00h-7FFFh







Y4





1





X





X





0





X





X





0





X





X





X





X





X





X





X





X





X





8000h-81FFh,
8400h-85FFh, 8800h-8DFFh


A000h-A1FFh,
A400h-A5FFh, A800h-ADFFh


C000h-C1FFh,
C400h-C5FFh, C800h-CDFFh


E000h-E1FFh,
E400h-E5FFh, E800h-EDFFh







Y5





1





X





X





0





X





X





1





X





X





X





X





X





X





X





X





X





8200h-83FFh,
8600h-87FFh, 8A00h-8FFFh


A200h-A3FFh,
A600h-A7FFh, AA00h-AFFFh


C200h-C3FFh,
C600h-C7FFh, CA00h-CFFFh


E200h-E3FFh,
E600h-E7FFh, EA00h-EFFFh







Y6





1





X





X





1





X





X





0





X





X





X





X





X





X





X





X





X





9000h-91FFh,
9400h-95FFh, 9800h-9DFFh


B000h-B1FFh,
B400h-B5FFh, B800h-BDFFh


D000h-D1FFh,
D400h-D5FFh, D800h-DDFFh


F000h-F1FFh,
F400h-F5FFh, F800h-FDFFh







Y7





1





X





X





1





X





X





1





X





X





X





X





X





X





X





X





X





9200h-93FFh,
9600h-97FFh, 9A00h-9FFFh


B200h-B3FFh,
B600h-B7FFh, BA00h-BFFFh


D200h-D3FFh,
D600h-D7FFh, DA00h-DFFFh


F200h-F3FFh,
F600h-F7FFh, FA00h-FFFFh






В итоге
адресное пространство размером в 64 Кбайт разбито на диапазоны для 8 устройств.
В каждом диапазоне выделено 8 участков по 512 байт и 4 участка по 1536 байт.

Задача № 2

Требуется выделить
зоны адресного пространства для размещения в них адресов для устройств,
указанных в таблице. В качестве адресного дешифратора используется ПЗУ.
Построить схемы выделения соответствующих блоков адресов и таблицу диапазонов
адресов.




Наименование устройства





Диапазон адресов





Емкость (Кбайт)







ПЗУ1





0000h-03FFh





1







ОЗУ1





0400h-0BFFh





2







УВВ1





2000h-2FFFh





4







ПЗУ2





3000h-4FFFh





8







ОЗУ2





5000h-6FFFh





8







УВВ2





8000h-FFFFh





32






Так как
наименьший блок имеет размер 1К ячеек, то разрешающая способность дешифратора
должна обеспечивать деление адресного пространства с точностью до зон размером
1К ячеек. Анализируя шесть старших разрядов адреса, получаем необходимую
точность, поскольку они делят все адресное 
пространство обьемом 64К ячеек на 26 = 64 части по 1К ячеек,
что и требуется.

Выбираем
за  основу ПЗУ с 10 адресными  входами 2716 ( К573РФ2 ), имеющее  структуру 2К*8 бит . Выходы 00 - 05 этого
ПЗУ подключаем к инверсным входам 
выбора кристалла соответсвующих 
микросхем.

Разрабатываем
прошивку ПЗУ.




Устройство





Диапазон адресов





Адресные входы





Выходы







A5





A4





A3





A2





A1





A0





0 1 2
3 4 5







ROM 1





0000h-03FFh





0





0





0





0





0





0





0 1 1
1 1 1







RAM 1





0400h-07FFh





0





0





0





0





0





1





1 0 1
1 1 1







0800h-0BFFh





0





0





0





0





1





0





1 0 1
1 1 1







-





0C00h-0FFFh





0





0





0





0





1





1





1 1 1
1 1 1







1000h-13FFh





0





0





0





1





0





0





1 1 1
1 1 1







1400h-17FFh





0





0





0





1





0





1





1 1 1
1 1 1







1800h-1BFFh





0





0





0





1





1





0





1 1 1
1 1 1







1C00h-1FFFh





0





0





0





1





1





1





1 1 1
1 1 1







IN-OUT
1





2000h-23FFh





0





0





1





0





0





0





1 1 0
1 1 1







2400h-27FFh





0





0





1





0





0





1





1 1 0
1 1 1







2800h-2BFFh





0





0





1





0





1





0





1 1 0
1 1 1







2C00h-2FFFh





0





0





1





0





1





1





1 1 1
1 1 1







ROM 2





3000h-33FFh





0





0





1





1





0





0





1 1 1
1 1 1







3400h-37FFh





0





0





1





1





0





1





1 1 1
1 1 1







3800h-3BFFh





0





0





1





1





1





0





1 1 1
1 1 1







3C00h-3FFFh





0





0





1





1





1





1





1 1 1
1 1 1







4000h-43FFh





0





1





0





0





0





0





1 1 1
1 1 1







4400h-47FFh





0





1





0





0





0





1





1 1 1
1 1 1







4800h-4BFFh





0





1





0





0





1





0





1 1 1
1 1 1







4C00h-4FFFh





0





1





0





0





1





1





1 1 1
1 1 1







RAM 2





5000h-53FFh





0





1





0





1





0





0





1 1 1
1 1 1







5400h-57FFh





0





1





0





1





0





1





1 1 1
1 1 1







5800h-5BFFh





0





1





0





1





1





0





1 1 1
1 1 1







5C00h-5FFFh





0





1





0





1





1





1





1 1 1
1 1 1







6000h-63FFh





0





1





1





0





0





0





1 1 1
1 1 1







6400h-67FFh





0





1





1





0





0





1





1 1 1
1 1 1







6800h-6BFFh





0





1





1





0





1





0





1 1 1
1 1 1







6C00h-6FFFh





0





1





1





0





1





1





1 1 1
1 1 1







-





7000h-73FFh





0





1





1





1





0





0





1 1 1
1 1 1







7400h-77FFh





0





1





1





1





0





1





1 1 1
1 1 1







7800h-7BFFh





0





1





1





1





1





0





1 1 1 1 1 1







7C00h-7FFFh





0





1





1





1





1





1





1 1 1 1 1 1







Устройство





Диапазон адресов





Адресные входы





Выходы







A5





A4





A3





A2





A1





A0





0 1 2
3 4 5







IN-OUT
2





8000h-83FFh





1





0





0





0





0





0





1 1 1
1 1 1







8400h-87FFh





1





0





0





0





0





1





1 1 1
1 1 1







8800h-8BFFh





1





0





0





0





1





0





1 1 1
1 1 1







8C00h-8FFFh





1





0





0





0





1





1





1 1 1
1 1 1







9000h-93FFh





1





0





0





1





0





0





1 1 1
1 1 1







9400h-97FFh





1





0





0





1





0





1





1 1 1
1 1 1







9800h-9BFFh





1





0





0





1





1





0





1 1 1
1 1 1







9C00h-9FFFh





1





0





0





1





1





1





1 1 1
1 1 1







A000h-A3FFh





1





0





1





0





0





0





1 1 1
1 1 1







A400h-A7FFh





1





0





1





0





0





1





1 1 1
1 1 1







A800h-ABFFh





1





0





1





0





1





0





1 1 1
1 1 1







AC00h-AFFFh





1





0





1





0





1





1





1 1 1
1 1 1







B000h-B3FFh





1





0





1





1





0





0





1 1 1
1 1 1







B400h-B7FFh





1





0





1





1





0





1





1 1 1
1 1 1







B800h-BBFFh





1





0





1





1





1





0





1 1 1
1 1 1







BC00h-BFFFh





1





0





1





1





1





1





1 1 1
1 1 1







C000h-C3FFh





1





1





0





0





0





0





1 1 1
1 1 1







C400h-C7FFh





1





1





0





0





0





1





1 1 1
1 1 1







C800h-CBFFh





1





1





0





0





1





0





1 1 1
1 1 1







CC00h-CFFFh





1





1





0





0





1





1





1 1 1
1 1 1







D000h-D3FFh





1





1





0





1





0





0





1 1 1
1 1 1







D400h-D7FFh





1





1





0





1





0





1





1 1 1
1 1 1







D800h-DBFFh





1





1





0





1





1





0





1 1 1
1 1 1







DC00h-DFFFh





1





1





0





1





1





1





1 1 1
1 1 1







E000h-E3FFh





1





1





1





0





0





0





1 1 1
1 1 1







E400h-E7FFh





1





1





1





0





0





1





1 1 1
1 1 1







E800h-EBFFh





1





1





1





0





1





0





1 1 1
1 1 1







EC00h-EFFFh





1





1





1





0





1





1





1 1 1
1 1 1







F000h-F3FFh





1





1





1





1





0





0





1 1 1
1 1 1







F400h-F7FFh





1





1





1





1





0





1





1 1 1
1 1 1







F800h-FBFFh





1





1





1





1





1





0





1 1 1
1 1 1







FC00h-FFFFh





1





1





1





1





1





1





1 1 1 1 1 1






Схема
дешифратора :


















Карта памяти :








3FFh





7FFh





BFFh





FFFh











0000h





ROM 1





RAM 1





-





0FFFh







1000h





-





1FFFh







2000h





IN-OUT 1





2FFFh







3000h





ROM 2





3FFFh







4000h





4FFFh







5000h





RAM 2





5FFFh







6000h





6FFFh







7000h





-





7FFFh







8000h





IN-OUT 2





8FFFh







9000h





9FFFh







A000h





AFFFh







B000h





BFFFh







C000h





CFFFh







D000h





DFFFh







E000h





EFFFh







F000h





FFFFh











000h





400h





800h





C00h










Задача № 3

Разделить
адресное пространство 64 килобайта на 18 равных частей. В качестве дешифратора
адреса используется ПЛМ. Разбиение адресного пространства показать в виде схемы
и таблицы.

Размер одной
части 65536 / 18 = 3640 байт. Т.к. 3640 * 18 = 65520, последние 16 ячеек не
будут использоваться.

Произведем
разбиение 3640 байт на участки 2N :

 3640 = 2048 + 1024 + 512 + 32 + 16 + 8

В результате
получим 6 областей памяти по 18 участков в каждой :

   0000h-8FFFh ( участки размером 2048 )

   9000h-D7FFh ( участки размером 1024 )

   D800h-FBFFh
( участки размером 512 )

   FC00h-FE3Fh ( участки размером 32 )

   FE40h-FF5Fh ( участки размером 16 )

   FF60h-FFEFh
( участки размером 8 )

Прошивка ПЛМ 1




Область





Диапазон адресов





Разряды адреса







1


5





1


4





1


3





1


2





1


1





1


0





9





8





7





6





5





4





3





2





1





0







1





0000h-07FFh





0





0





0





0





0





X





X





X





X





X





X





X





X





X





X





X







9000h-93FFh





1





0





0





1





0





0





X





X





X





X





X





X





X





X





X





X







D800h-D9FFh





1





1





0





1





1





0





0





X





X





X





X





X





X





X





X





X







FC00h-FC1Fh





1





1





1





1





1





1





0





0





0





0





0





X





X





X





X





X







FE40h-FE4Fh





1





1





1





1





1





1





1





0





0





1





0





0





X





X





X





X







FF60h-FF67h





1





1





1





1





1





1





1





1





0





1





1





0





0





X





X





X







2





0800h-0FFFh





0





0





0





0





1





X





X





X





X





X





X





X





X





X





X





X







9400h-97FFh





1





0





0





1





0





1





X





X





X





X





X





X





X





X





X





X







DA00h-DBFFh





1





1





0





1





1





0





1





X





X





X





X





X





X





X





X





X







FC20h-FC3Fh





1





1





1





1





1





1





0





0





0





0





1





X





X





X





X





X







FE50h-FE5Fh





1





1





1





1





1





1





1





0





0





1





0





0





X





X





X





X







FF68h-FF6Fh





1





1





1





1





1





1





1





1





0





1





1





0





1





X





X





X







3





1000h-17FFh





0





0





0





1





0





X





X





X





X





X





X





X





X





X





X





X







9800h-9BFFh





1





0





0





1





1





0





X





X





X





X





X





X





X





X





X





X







DC00h-DDFFh





1





1





0





1





1





1





0





X





X





X





X





X





X





X





X





X







FC40h-FC5Fh





1





1





1





1





1





1





0





0





0





1





0





X





X





X





X





X







FE60h-FE6Fh





1





1





1





1





1





1





1





0





0





1





1





0





X





X





X





X







FF70h-FF77h





1





1





1





1





1





1





1





1





0





1





1





1





0





X





X





X







4





1800h-1FFFh





0





0





0





1





1





X





X





X





X





X





X





X





X





X





X





X







9C00h-9FFFh





1





0





0





1





1





1





X





X





X





X





X





X





X





X





X





X







DE00h-DFFFh





1





1





0





1





1





1





1





X





X





X





X





X





X





X





X





X







FC60h-FC7Fh





1





1





1





1





1





1





0





0





0





1





1





X





X





X





X





X







FE70h-FE7Fh





1





1





1





1





1





1





1





0





0





1





1





1





X





X





X





X







FF78h-FF7Fh





1





1





1





1





1





1





1





1





0





1





1





0





0





X





X





X







5





2000h-27FFh





0





0





1





0





0





X





X





X





X





X





X





X





X





X





X





X







A000h-A3FFh





1





0





1





0





0





0





X





X





X





X





X





X





X





X





X





X







E000h-E1FFh





1





1





1





0





0





1





0





X





X





X





X





X





X





X





X





X







FC80h-FC9Fh





1





1





1





1





1





1





0





0





1





0





0





X





X





X





X





X







FE80h-FE8Fh





1





1





1





1





1





1





1





0





1





0





0





0





X





X





X





X







FF80h-FF87h





1





1





1





1





1





1





1





1





1





0





0





0





0





X





X





X







6





2800h-2FFFh





0





0





1





0





1





X





X





X





X





X





X





X





X





X





X





X







A400h-A7FFh





1





0





1





0





0





1





X





X





X





X





X





X





X





X





X





X







E200h-E3FFh





1





1





1





0





0





0





1





X





X





X





X





X





X





X





X





X







FCA0h-FCBFh





1





1





1





1





1





1





0





0





1





0





1





X





X





X





X





X







FE90h-FE9Fh





1





1





1





1





1





1





1





0





1





0





0





1





X





X





X





X







FF88h-FF8Fh





1





1





1





1





1





1





1





1





1





0





0





0





1





X





X





X







7





3000h-37FFh





0





0





1





1





0





X





X





X





X





X





X





X





X





X





X





X







A800h-ABFFh





1





0





1





0





1





0





X





X





X





X





X





X





X





X





X





X







E400h-E5FFh





1





1





1





0





0





1





0





X





X





X





X





X





X





X





X





X







FCC0h-FCDFh





1





1





1





1





1





1





0





0





1





1





0





X





X





X





X





X







FEA0h-FEAFh





1





1





1





1





1





1





1





0





1





0





1





0





X





X





X





X







FF90h-FF97h





1





1





1





1





1





1





1





1





1





0





0





1





X





X





X





X







8





3800h-3FFFh





0





0





1





1





1





X





X





X





X





X





X





X





X





X





X





X







AC00h-AFFFh





1





0





1





0





1





1





X





X





X





X





X





X





X





X





X





X







E600h-E7FFh





1





1





1





0





0





1





1





X





X





X





X





X





X





X





X





X







FCEOh-FCFFh





1





1





1





1





1





1





0





0





1





1





1





X





X





X





X





X







FEB0h-FEBFh





1





1





1





1





1





1





1





0





1





0





1





1





X





X





X





X







FF98h-FF9Fh





1





1





1





1





1





1





1





1





1





0





0





1





X





X





X





X







9





4000h-47FFh





1





0





1





1





0





0





X





X





X





X





X





X





X





X





X





X







B000h-B3FFh





1





0





1





1





0





0





X





X





X





X





X





X





X





X





X





X







E800h-E9FFh





1





1





1





0





1





0





0





X





X





X





X





X





X





X





X





X







FD00h-FD1Fh





1





1





1





1





1





1





0





1





0





0





0





X





X





X





X





X







FEC0h-FECFh





1





1





1





1





1





1





1





0





1





1





0





0





X





X





X





X







FFA0h-FFA7h





1





1





1





1





1





1





1





1





1





0





1





0





X





X





X





X






Прошивка ПЛМ 2




Область





Диапазон адресов





Разряды адреса







1


5





1


4





1


3





1


2





1


1





1


0





9





8





7





6





5





4





3





2





1





0







10





4800h-4FFFh





0





1





0





0





1





X





X





X





X





X





X





X





X





X





X





X







B400h-B7FFh





1





0





1





1





0





1





X





X





X





X





X





X





X





X





X





X







EA00h-EBFFh





1





1





1





0





1





0





1





X





X





X





X





X





X





X





X





X







FD20h-FD3Fh





1





1





1





1





1





1





0





1





0





0





1





X





X





X





X





X







FED0h-FEDFh





1





1





1





1





1





1





1





0





1





1





0





1





X





X





X





X







FFA8h-FFAFh





1





1





1





1





1





1





1





1





1





0





1





0





1





X





X





X







11





5000h-57FFh





0





1





0





1





1





X





X





X





X





X





X





X





X





X





X





X







B800h-BBFFh





1





0





1





1





1





0





X





X





X





X





X





X





X





X





X





X







EC00h-EDFFh





1





1





1





0





1





1





0





X





X





X





X





X





X





X





X





X







FD40h-FD5Fh





1





1





1





1





1





1





0





1





0





1





0





X





X





X





X





X







FEE0h-FEEFh





1





1





1





1





1





1





1





0





1





1





1





0





X





X





X





X







FFB0h-FFB7h





1





1





1





1





1





1





1





1





1





0





1





1





0





X





X





X







12





5800h-5FFFh





0





1





0





1





0





X





X





X





X





X





X





X





X





X





X





X







BC00h-BFFFh





1





0





1





1





1





1





X





X





X





X





X





X





X





X





X





X







EE00h-EFFFh





1





1





1





0





1





1





1





X





X





X





X





X





X





X





X





X







FD60h-FD7Fh





1





1





1





1





1





1





0





1





0





1





1





X





X





X





X





X







FEF0h-FEFFh





1





1





1





1





1





1





1





0





1





1





1





1





X





X





X





X







FFB8h-FFBFh





1





1





1





1





1





1





1





1





1





0





1





1





1





X





X





X







13





6000h-67FFh





0





1





1





0





1





X





X





X





X





X





X





X





X





X





X





X







C000h-C3FFh





1





1





0





0





0





0





X





X





X





X





X





X





X





X





X





X







F000h-F1FFh





1





1





1





1





0





0





0





X





X





X





X





X





X





X





X





X







FD80h-FD9Fh





1





1





1





1





1





1





0





1





1





0





0





X





X





X





X





X







FF00h-FFOFh





1





1





1





1





1





1





1





1





0





0





0





0





X





X





X





X







FFC0h-FFC7h





1





1





1





1





1





1





1





1





1





1





0





0





0





X





X





X







14





6800h-6FFFh





0





1





1





0





0





X





X





X





X





X





X





X





X





X





X





X







C400h-C7FFh





1





1





0





0





0





1





X





X





X





X





X





X





X





X





X





X







F200h-F3FFh





1





1





1





1





0





0





1





X





X





X





X





X





X





X





X





X







FDA0h-FDBFh





1





1





1





1





1





1





0





1





1





0





1





X





X





X





X





X







FF10h-FF1Fh





1





1





1





1





1





1





1





1





0





0





0





1





X





X





X





X







FFC8h-FFCFh





1





1





1





1





1





1





1





1





1





1





0





0





1





X





X





X







15





7000h-77FFh





0





1





1





1





1





X





X





X





X





X





X





X





X





X





X





X







C800h-CBFFh





1





1





0





0





1





0





X





X





X





X





X





X





X





X





X





X







F400h-F5FFh





1





1





1





1





0





1





0





X





X





X





X





X





X





X





X





X







FDC0h-FDDFh





1





1





1





1





1





1





0





1





1





1





0





X





X





X





X





X







FF20h-FF2Fh





1





1





1





1





1





1





1





1





0





0





1





0





X





X





X





X







FFD0h-FFD7h





1





1





1





1





1





1





1





1





1





1





0





1





0





X





X





X







16





7800h-7FFFh





0





1





1





1





0





X





X





X





X





X





X





X





X





X





X





X







CC00h-CFFFh





1





1





0





0





1





1





X





X





X





X





X





X





X





X





X





X







F600h-F7FFh





1





1





1





1





0





1





1





X





X





X





X





X





X





X





X





X







FDE0h-FDFFh





1





1





1





1





1





1





0





1





1





1





1





X





X





X





X





X







FF30h-FF3Fh





1





1





1





1





1





1





1





1





0





0





1





1





X





X





X





X







FFD8h-FFDFh





1





1





1





1





1





1





1





1





1





1





0





1





X





X





X





X







17





8000h-87FFh





1





0





0





0





1





X





X





X





X





X





X





X





X





X





X





X







D000h-D3FFh





1





1





0





1





0





0





X





X





X





X





X





X





X





X





X





X







F800h-F9FFh





1





1





1





1





1





0





0





X





X





X





X





X





X





X





X





X







FE00h-FE1Fh





1





1





1





1





1





1





1





0





0





0





0





X





X





X





X





X







FF40h-FF4Fh





1





1





1





1





1





1





1





1





0





1





0





0





X





X





X





X







FFE0h-FFE7h





1





1





1





1





1





1





1





1





1





1





1





0





X





X





X





X







18





8800h-8FFFh





1





0





0





0





0





X





X





X





X





X





X





X





X





X





X





X







D400h-D7FFh





1





1





0





1





0





1





X





X





X





X





X





X





X





X





X





X







FA00h-EBFFh





1





1





1





1





1





0





1





X





X





X





X





X





X





X





X





X







FE20h-FE3Fh





1





1





1





1





1





1





1





0





0





0





1





X





X





X





X





X







FF50h-FF5Fh





1





1





1





1





1





1





1





1





0





1





0





1





X





X





X





X







FFE8h-FFEFh





1





1





1





1





1





1





1





1





1





1





1





0





X





X





X





X






В результате
получена таблица прошивки ПЛМ для разделения адресного пространства 64 кБ на 18
несплошных равных частей.

Исходя из
требуемого количества произведений ( 18 * 6 = 108 ) и количества выходных
функций (18), выбираем в качестве элементной базы выпускаемую фирмой ADVANCED MICRO DEVICES микросхему ПЛМ PLS30S16. Эта микросхема позволяет за счет
мультиплексирования четырех адресных входов с выходами иметь от 12 до 17 входов
и от 8 до 12 выходов при количестве произведений до 64.

Для решения
поставленной задачи берем две ПЛМ, запараллеленные входы которых подключены к
шине адреса, а выходы – к входам выбора кристалла соответствующих микросхем.

Технические
данные на ПЛМ PLS30S16 фирмы AMD :

- IC MASTER/Windows -

(Title)           
:PLD|BIP||OTPRC

Section           
:PROGRAMMABLE LOGIC DEVICES

CAT0              
:PLD

Category          
:Bipolar

CAT1              
:BIP

MinorA            
:One-Time

Programmable~Registered/Combinatorial Outputs

CAT3              
:OTPRC

MDD Code          
:AMD

Manufacturer's Name:ADVANCED MICRO DEVICES

Device Number     
:PLS30S16-40

Disc              
:*93

Date               :10/26/92

Oper              
:BAC

Transcode         
:E

RBASE             
:30S16

MBase             
:PLS30S16

Data Book         
:DATASHEET

Propagation Delay (:40

Maximum Clock (MHz):22.2

Product Terms     
:64

Flip-Flops        
:12

Dedicated Inputs  
:12-17

Bidirectional I/Os :8-12

Standby Current (mA:225

Active Current (mA):225

Pins              
:28

Has Image         
:N


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.