Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Eom_part1.doc
Скачиваний:
0
Добавлен:
28.08.2019
Размер:
411.65 Кб
Скачать

1.Організація однокристальних еом

Структурну організацію однокристальних ЕОМ розглнемо на прикладі ВІС (великої інтегральної схеми), що за своїм складом аналогічна невеликій ЕОМ. Незважаючи на те, що система команд цієї ЕОМ направлена на вирішення задач керування в нескладних процесах, її вивчення дає можливість глибоко зрозуміти особливості програмування на мові Асемблера та легко засвоювати «Асемблер» ПЕОМ.

Основу структури ЕОМ складає внутрішня двонаправлена 1 бітна шина, що з’єднує всі пристрої мікросхеми: АЛП, пристрій керування, пам’ять та інш. Розглянемо послідовно особливості роботи кожного з пристроїв.

РПП

(1Кх8)

ЛК

ЛК07

ЛК811

РПД

64х8

Таймер/лічильник

ТСТ/Л

РА

АЛП

ССП

Порт 2

X1

X2

ЗБР

ШАГ

Т0

Т1

ЗПР

ЧТ

ЗП

ВРПП

САЗП

D3ПП

ПРОГ

Т1

Т2

Синхронізація керування

Синхр

Старт

Тест

Перери­вання

Керування обміном з зовнішніми пристроями

А

РК

Порт 1

Порт BUS

P1.0P1.7 P2.0P2.7 DB.0DB7

Рис.1.

Умовні позначення до рис.1

РПП (EPROM) - резидентна пам’ять програм (erasable programmable read only memory).

РПД (RAM) - резидентна пам’ять даних (random axcess memory).

ЛК (PC) - лічильник команд (program counter).

РА (RAR) - регістр адреси (RAM adress register).

ТП (TCNT) – таймер подій (timer / counten events).

ССП (PSW) - слово стану програми (program status word).

АЛП (ALD) - арифметико-логічний пристрій (ariphmetical and logic device).

А (A) - регістр акумулятор.

ЗБР (RESET) - зброс (reset) - вхід сигналу загального збросу при запуску ОЕОМ: Сигнал 0 при програмуванні та перевірці РПП.

КРО (SS) - (single step) - сигнал що разом з сигналом САЗП дозволяє при налагодженні виконувати програму з зупинкою після виконання чергової команди Х1 - вхід для підключення виводу кварцевого резонатора або вхід для сигналу від зовнішнього джерела синхронізації Х2 - вхід для підключення другого виводу резонатора. Т0 - вхідний сигнал , опитуємий по командах умовного переходу ITO та INTO; крім того, використовується при програмування РПП; може використовуватись для виводу сигналу синхронізації після команди ЕNTO. CLK Т1 - вхідний сигнал, що опитується командами умовного переходу IT1 та INT1; крім того використовується в якості входу внутрішнього лічильника зовнішніх подій після виконання команди STRT CNT;

ЗПР (INT) - сигнал запиту на преривання (interrupt) від зовнішнього пристрою; визиває підпрограму обслуговування преривань, якщо преривання дозволено раніше по команді ENI; наявність сигналу ЗБР забороняє преривання.

ЧТ (RD) - стробуючий сигнал при зчитуванні з зовнішньой пам’яті даних або (ПВВ) пристрою вводу-виводу (read).

ЗП (WR) - смтробуючий сигнал при запису в зовнішню пам’ять даних або в пристрій вводу-виводу ПВВ.

ВРПП (ЕА) - відключення РПП (external adress). Рівень 1 на цьому вході; змушує МК виконувати виборку команд тільки з зовнішньої пам’яті програм. Використовується при тестуванні програми та налагоджуванні ОЕОМ.

САЗП (АЛЕ) – строб адреси зовнішньої пам’яті (аddress latch enable). Сигнал використовується для прийому та фіксації адреси зовнішньої пам’яті на зовнішньому регістрі; сигнал являється ідентифікатором машинного циклу і завжди виводиться з частотою в 5 разів меншою головної частоти синхронізації.

ДЗПП (PSEN) - дозвіл зовнішньої пам’яті програм (program store enable) - сигнал видається тільки при зверненні до зовнішньої пам’яті програм.

ПРОГ (PROG) - програмування (programming) - вхід для подачі програмуючого імпульса t25B, а також вихід стробуючого сигналу для мікросхеми розширювача вводу-виводу.

Порт 1 (Р1) - 8 бітний квазідвонаправлений порт вводу-виводу інформації: кожен розряд порту може бути запрограмований на ввод або вивод інформації.

Порт 2 (Р2) - 8 бітний квазідвонаправлений порт, кожний розряд якого може бути запрограмован на ввод або вивод; біти Р20-3 під час зчитування з ЗПП являються старшими бітами лічильника команд ЛК2-4.

Порт BUS - 8 бітний двонаправлений порт вводу-виводу інформації; може бути відключеним від зовнішніх шин, може приймати та видавати байти інформації синхронно з сигналами ЧТ та ЗАП; при зверненні до ЗПП представляє 8 молодших біт лічильника команд, а потім по сигналу ДВПП приймає вибрану команду, при зверненні до ЗПД.

1.1.АЛП.

До складу АЛП відноситься комбінаційна схема, яка може виконувати наступні операції: знаходження суми двох байтів з переносом, логічні операції "І", "АБО", "Виключаюче АБО"; інкремент, декремент, інверсію, циклічний зсув вліво та вправо, обмін тетрад в байті, десятичну корекцію байта, що знаходиться регістрі-акумуляторі. Для виконання вказаних операцій комбінаційна схема доповнюється регістрами Т (Т1, Т2), двохтактним регістом акумулятором А, десятичним коректором, схемою формування признаків та регістром слова станів програми (ССП). ССП є 8-розрядним регістром, кожний розряд якого має визначене призначення,що дає можливість інфор-мувати програміста про особливості виконання конкретних команд. Розряди ССП для різних мікропроцесорів мають різне призначення. Для ОЕОМ МК48 призначенняі розрядів відображено на рис.2

C

AC

FO

BS

1

S2

S1

S0

Показник стека

Не використовується

Селектор банка регістрів

Ознака програміста

Ознака допоміжного переносу

Ознака переносу

Рис.2

В першому розряді записується ознака переносу. Значення цього розряду при появі переносу при виконанні арифметичних операцій над двома восьмирозрядними числами. Ця ознака або враховується при виконанні наступної операції, або служити сигналом, що звертає увагу програміста до подібних ситуацій.

Ознака допоміжного переносу АС=1 в тому випадку коли перенос з’являється при виконанні арифметичних операцій над чотирма молодшими розрядами двох чисел.

Значення інших розрядів будуть пояснятись в ході вивчення системи команд.

Зі сказаного витікає, що результат виконання будь-якої команди завжди складається з двох частин - слова - результату, що зберігається в регістрі аккумуляторі та ССП. Ці два слова, які розглядаються як одне ціле, мають назву слово стану програми.

В МК48 окремі ознаки виконання операцій не фіксуються в регістрі ССП, але формуються комбінаційною схемою. До них відноситься ознака нуля в усіх розрядах аумулятора, а також ознака наявності 1 в контролюємому біті акумулятора. Ці ознаки призначені для того, щоб виконувати команди передачі керування при наявності умовних преходів без їхньої фіксації на тригерах регістра.

Логіка умовних переходів дозволяє програмісту використовувати ознаки, які будуть розглянуті нижче.

1.2.Пам’ять МК48.

Адресне слово лічильника команд (ЛК) ОЕОМ складається з 12 біт, але інкрементуються тільки 11 молодших розрядів. Тому максимальне значення адресного слова - 7FFH. Стан старшого 12-го розряду може змінюватися спеціальними командами, засилаючи в нього 0, аба 1. Такий підхід надає можливість загальну ємність пам’яті програм 4к. розділити на два блоки по 2к. кожен - перший блок використовується при значенні 12-го розряду "0", а другий при "1". Значення 12-го називається ознакою МВ. На рис.3 наведена карта адрес ОЕОМ 48.

4095

2048

ЛК11=1

2047

1024

ЛК11=0

Вектор прерив. від таймера

Вектор зовн. преривання

Вектор збросу та запису

1023

7

3

2

1

0

Рис. 3

Резидентна внутрішня пам’ять програм, з 1024 адресами в своєму складі має три спеціальні адреси:

0 - по якій передається керування одразу після закінчення сигналу системного збросу. При цій адресі знаходитись команда безумовного переходу до початку програми;

3 - по цій адресі розміщується вектор преривання від зовнішнього пристрою (перша команда підпрограми що обслуговує запит на преривання);

7 - по цій адресі розміщується вектор преривання від таймера або початкові команди підпрограми обслуговування преривання за ознакою переповнення таймера/лічильника.

При використанні преривань слід пам’ятати, що в ОЕОМ МК48 сигнали преривань примусово встановлюють в нуль 12й розряд лічильника команд. Це забов’язує програміста розміщувати підпрограми преривань в першому блоці пам’яті програм.

Пам’ять програм розділяється не тільки на два блоки. Кожний блок в свій час розділяється на сторінки по 256 байтів кожний. Це також вносить деякі об-меження при програмуванні, тому що в командах умовних переходів задається 8 бітна адреса передачі керування в межах робочої сторінки. Якщо в програмі використовується багато переходів по умовах, то може з’явитися необхідність розміщувати підпрогами на декількох сторінках. Команда виклику підпрограм модифікує 11 біт лічильника команд, забезпечуючи тим самим міжсторіночні переходи в межах вибраного блоку пам’яті програм.

Так як пам’ять використовується не тільки для збереження програм, а й констант, в ОЕОМ використовуються два способи адресації постійної пам’яті для читання даних: безпосередня адресація, при якій другий байт двохбайтової команди представляє собою операнд; логічна адресація, при якій байт акумулятора використовується в якості показника даних в робочій сторінці, або в сторінці 3 пам’яті програм.

Резидентна пам’ять даних має ємність 64 байти,

63

32

РПД

(32х8)

31

Банк ре­гістрів 1

R1*

24

R0*

23

8

8-рівне­вий стек або РПД (16х8)

7

Банк ре­гістрів 0

1

R1

0

r0

Рис.4

23

111

22

21

110

20

19

101

18

17

100

16

15

011

14

13

010

12

11

001

10

R9

ССП4-7

ЛК8-11

000

R8

ЛК4-7

ЛК0-3

Рис.5

в якій виділені два блоки робочих регістрів 0-7 та 24-31. Вибір одного з двох блоків виконується командою SEL RB. Робочі регістри доступні для команд з прямою адресацією, а всі елементи ОЗП - командам з побічною адресацією. Для побічної адресації використовуються регістри R0, R1 та R0*, R1* (рис.4). Елементи ОЗП з адресами 8-23 адресуються показником стеку з ССП і можуть бути використані в якості 8 рівневого стеку (рис.5). В регістрах стеку зберігаються тільки вміст ЛК та старша тетрада ССП (ознаки).

Практично всі команди з зверненням до ОЗП оперують з одним байтом. Але за допомогою команд визову та повернення виконується доступ до двохбайтних слів. В пам’яті даних слова зберігаються так, що старший байт слова розміщується в елементі пам’яті з більшою адресою. В пам’яті програм порядок розміщення байт по старшинству при зберіганні двохбайтних слів зворотній.

В розширених мікропроцесорних системах, де використовується зовнішній ОЗП, через регістри R0 та R1 можливий доступ до зовнішньої пам’яті об’ємом 256 байт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]