- •2 Модуль
- •3 Модуль
- •4 Модуль
- •1 Вузли обчислювальної техніки та мікропроцесорних систем.
- •2 Програмування мікропроцесорів фірми Intel.
- •1 Модуль
- •1 Обчислювальні та мікропроцесорні системи
- •1.1 Основні визначення
- •1.2 Принципи побудови та функціонування обчислювальних систем
- •1.2.1 Архітектура обчислювальних систем
- •1.2.2 Класифікація комп’ютерів
- •1.3 Принципи побудови та функціонування мпс
- •1.4 Функціонування обчислювального пристрою
- •2 Операції над даними в обчислювальних системах
- •2.1 Подання даних в обчислювальних системах
- •2.2 Подання даних у кодах
- •2.3 Порозрядні операції над даними
- •3 Цифрові автомати
- •3.1 Визначення цифрових автоматів
- •3.2 Синтез логічних схем
- •3.3 Розробка ца
- •4 Типові пристрої обчислювальних систем (Для самостійного вивчення)
- •4.1 Суматори
- •4.2 Цифрові компаратори
- •4.3 Арифметико-логічний пристрій
- •4.4 Програмовні логічні інтегральні схеми (пліс)
- •5 Принципи побудування запам’ятовувальних пристроїв мпс з заданою організацією
- •5.1 Запам’ятовувальні пристрої мпс та їх класифікація
- •5.2 Постійні запам’ятовувальні пристрої
- •5.3 Оперативні запам’ятовувальні пристрої
- •5.4 Умовне позначення мікросхем пам’яті
- •5.5 Побудування модуля запам’ятовувального пристрою мпс з заданою організацією
- •6 Інтерфейс
- •6.1 Організація інтерфейсів
- •6.2 Організація послідовних інтерфейсів введення-виведення
- •7 Мікропроцесори
- •7.1 Архітектура мікропроцесорів
- •7.2.1 Організація 8-розрядних мікропроцесорів (Для самостійного вивчення)
- •Інтерпретація даних у мп к580вм80а
- •Програмна модель мп к580вм80а
- •Формат команд мп к580вм80а
- •Способи адресації операндів мп к580вм80а
- •Мікропроцесорна система кр580
- •Стекова пам’ять
- •Функціонування мпс
- •Виконання команди пересилання з регістра с у регістр в
- •Робота мпс при виконанні команди in n введення даних з порту n в акумулятор мп а
- •Реакція мпс на виконання команди зупину
- •Робота мпс у режимі переривань
- •7.2.2 Організація 16-розрядних мікропроцесорів
- •7.2.3 Організація 32-розрядних мікропроцесорів (Для поглибленого вивчення)
- •Співпроцесори мп і80386
- •7.3 Продуктивність мікропроцесорів та її оцінювання
- •7.3.1 Технічна продуктивність мікропроцесора
- •7.3.2 Реальна продуктивність мікропроцесора
- •7.3.3 Архітектура сучасних мікропроцесорів
- •8 Використання мп фірми intel у
- •Процесори Athlon та Duron фірми amd
- •Список рекомендованої літератури до 1 модулю
- •2 Модуль
- •9 Програмування мікропроцесорів фірми intel
- •9.1 Сегментування пам’яті мікропроцесорами
- •9.2 Способи адресування операндів мп фірми Intel Регістрове адресування операндів
- •Безпосереднє адресування операндів
- •Пряме адресування
- •Непряме регістрове адресування
- •Пряме адресування з індексуванням
- •Адресування за базою з індексуванням
- •Непряме адресування з масштабуванням
- •9.3 Мова програмування Асемблер-86
- •9.3.1 Формат команди
- •9.3.2 Команди пересилань
- •9.3.3 Команди перетворення даних мови Асемблер-86
- •9.3.4 Команди умовних та безумовних переходів
- •9.3.5 Команди організації циклів
- •9.4 Створення програм на мові Асемблер-86
- •9.4.1 Лінійні програми
- •9.4.2 Розгалужені програми
- •9.4.3 Циклічні програми
- •10 Програмна реалізація вузлів телекомунікаційного обладнання на мові асемблер-86
- •10.1 Способи реалізації алгоритмів
- •10.2 Розробка апаратно-програмних комплексів
- •10.3 Приклади реалізації простих вузлів телекомунікацій
- •10.3.1 Ініціалізація послідовного асинхронного адаптера rs-232-c
- •10.3.2 Фрагмент програми передавання даних через асинхронний адаптер rs-232-c
- •10.3.3 Фрагмент програми приймання даних через асинхронний адаптер rs-232-c
- •10.3.4 Приклад програми ініціалізації rs-232-c та введення-виведення даних, написаної у програмному середовищі turbo assembler (tasm)
- •10.3.5 Програмна реалізація генератора імпульсних послідовностей
- •10.3.6 Програмне вимірювання періоду імпульсної послідовності det
- •10.3.7 Програмна реалізація мультиплексора
- •Список рекомендованої літератури до 2 модулю
- •3 Модуль
- •11 Мікропроцесорні системи на універсальних мп фірми motorola
- •11.2 Побудова мпс на 16-розрядних мікропроцесорах фірми Motorola
- •11.2.1 Підсистема центрального процесорного елемента mc68000
- •11.2.2 Розподіл адресного простору мпс
- •11.2.3 Організація підсистеми пам’яті
- •11.2.4 Організація підсистем введення-виведення
- •11.4 Побудова мпс на 32-розрядних мікропроцесорах фірми Motorola
- •11.4.1 Підсистема центрального процесорного елемента
- •11.4.2 Розподіл адресного простору мпс
- •11.4.3 Організація підсистеми пам’яті мпс
- •11.4.4 Організація підсистеми введення/виведення
- •11.4.5 Підключення співпроцесора
- •12 Програмування універсальних мп
- •12.1 Мова Асемблер програмування мп фірми Motorola
- •Непряма регістрова адресація з постіндексуванням
- •Непряма регістрова адресація з преіндексуванням
- •Непряма відносна адресація з індексуванням
- •12.2 Система команд мп мс680х0 (Для самостійного вивчення)
- •12.2.1 Команди пересилання
- •12.2.2 Команди арифметичних операцій
- •12.2.3 Команди логічних операцій
- •12.2.4 Команди зсувів
- •12.2.5 Команди безумовних переходів
- •12.2.6 Команди умовних переходів
- •12.2.7 Команди організації програмних циклів
- •12.2.8 Команди звернення до підпрограм
- •12.3 Побудова програм з різною структурою на мові Асемблер мп фірми Motorola
- •12.3.1 Лінійні програми
- •12.3.2 Розгалужені та циклічні програми. Підпрограми
- •12.4 Створення програмного забезпечення мпс на мп фірми Motorola
- •Список рекомендованої літератури до 3 модулю
11.4.5 Підключення співпроцесора
Вхідний контроль:
Які функції виконує співпроцесор у складі двопроцесорної системи: центральний процесор — співпроцесор?
Які типи співпроцесорів Ви знаєте?
Який пристрій, центральний процесор або співпроцесор, є ініціатором їх спільної роботи?
Робота співпроцесора здійснюється у циклі, коли FC2 = FC1 = FC0 = 1, або інакше, у просторі CPU.
Мікропроцесор МС68ЕС020 допускає підключення співпроцесора обробки чисел з плавучою крапкою типу МС68881; тип процесора визначається кодом, який вміщує поле формату команди CPID співпроцесора (рис. 11.35). Мнемоніка команди співпроцесора починається з символа F (1111).
15 |
12 |
11 |
9 |
8 |
6 |
5 |
0 |
1111 |
CpID |
TYPE |
TD |
||||
Додаткові слова (адреса, команди, умови) |
Рисунок 11.35 — Формат команд співпроцесора
Поле TYPE визначає тип команди, яку виконує співпроцесор — код операції, розгалуження за умовою, реалізація циклу тощо. Поле CD і інші слова команди вміщують додаткову інформацію: адресу операнда, вибір операції, умови тощо.
Після отримання команди співпроцесора мікропроцесор виконує цикл звернення до співпроцесора: FC2, FC1 та FC0 дорівнюють 1, а на шину адреси
31 |
20 |
19 |
16 |
15 |
13 |
12 |
5 |
4 |
0 |
0 ... |
0 |
0010 |
CpID |
0 ... |
0 |
Регістр |
поступає інформація, яка описує стан шини адреси при зверненні до співпроцесора. Вміст розрядів А19...А13 використовується для адресації вказаного у команді співпроцесора, а розряди А4...А0 вибирають регістр у складі інтерфейсу співпроцесора, який слугує джерелом або приймачем інформації.
При зверненні до співпроцесора мікропроцесор видає сигнали AS#, DS#, R/ , RESET# і приймає від нього сигнали підтвердження DSACK1#, DSACK0#.
Під час виконання команди співпроцесора програмний лічильник мікропроцесора РС вміщує адресу кода операції (першого слова команди). На рис. 11.36 показано ВІС математичного співпроцесора МС68881. Сигнал вибору співпроцесора СРСS формується на ПЛМ або на декодері адреси.
Рисунок 11.36 — ВІС співпроцесора та її підключення
Контрольні запитання:
Які поля входять до складу формату команди співпроцесора і що вони визначають?
З якого символу починається кожна команда співпроцесора і чому?
Які пристрої можуть формувати сигнал CS# вибору мікросхеми співпроцесора?
Яку розрядність має шина даних співпроцесора і чому?
Яку функцію виконують у МПС вихідні сигнали співпроцесора DSACK0# та DSACK1#?
12 Програмування універсальних мп
ФІРМИ MOTOROLA
12.1 Мова Асемблер програмування мп фірми Motorola
Вхідний контроль:
Який формат мають типові команди мови Асемблер-86?
Де у форматі команди пересилань мови Асемблер-86 є джерело, а де приймач?
Як у командах мови Асемблер-86 вказується розрядність операндів?
У яких системах числення можуть бути подані операнди у командах мови Асемблер-86?
Які способи адресування підтримують МП фірми Intel?
Мова Асемблер МП сімейства М680Х0 є спільна для МП МС68000 як базової моделі і подальших моделей та використовує формат двоадресної типової команди.
Формат типової двоадресної команди показано на рис. 12.1.
-
15
12
11
9
8
6
5
3
2
0
COP
Rn
OPM
MODE
REG
Рисунок 12.1 – Формат типової двоадресної команди
Поле COP визначає код виконуваної операції, поле Rn вміщує номер регістра – n, в якому зберігається операнд «приймач», OPM – розрядність і розміщування результату; поля MODE та REG спосіб адресування і розміщування операнда «джерело».
Якщо виконується адресація з індексуванням, код команди вміщує друге слово, формат котрого наведено на рис. 12.2.
-
15
14
12
11
10
8
7
0
D/A
Xn
W/L
000
d8
Рисунок 12.2 – Формат другого слова команди при адресації з індексуванням
Поле D/A визначає тип регістра, який використовується у якості індексного. При D/A = 0 в якості індексного використовується один з регістрів даних, а при D/A = 1 — регістр адреси.
Поле Xn вміщує номер регістра, який використовується в якості індексного.
Поле W/L визначає розрядність індексу. При W/L = 0 в якості індексу використовується 16 молодших розрядів індексного регістра з поширенням знака до 32 розрядів. При W/L = 1 індексом служить 32-розрядний вміст індексного регістра.
Поле d8 вміщує 8-розрядне зміщення, яке подано у доповнювальному коді.
Деякі способи адресації потребують доповнення кодів команди, які розглянуті. Так, при безпосередньому адресуванні код команди доповнюється одним або двома словами, які вміщують безпосередній операнд Im8, Im16 або Im32. Якщо при адресуванні операнда «джерело» або «приймач» використовується 16-розрядне зміщення або використовується абсолютна адреса, яка має розмір слово (Abs.W) або подвійне слово (Abs.L), то код команди доповнюється відповідними словами.
В загальному вигляді типова двоадресна команда мови Асемблер МП МС68000 має вигляд
COP.х <src>, <dst>,
де СОР — мнемокод відповідної команди, замість х ставиться символ; який визначає розрядність операндів: В — байт, W — слово (16 розрядів), L — довге слово (32 розряди); якщо символ розрядності є відсутній, то за умовчанням операнд — є слово. Операнди умовно визначаються як <src> — джерело, <dst> — приймач, який слугує саме приймачем результату операції. При записуванні конкретних команд замість <src> та <dst> вказуються символічні адреси операндів на мові асемблера відповідно до способу їх адресації. При безпосередній адресації замість <src> вказується число, перед яким ставиться префікс #.
Операнди, адреси та зміщення у командах можуть подаватись у системах числення, які визначаться символами:
& — десяткова система,
% — двійкова система,
@ — вісімкова система,
$ — шістнадцяткова система,
символи ставляться перед даними.
При відсутності символу, який визначає систему числення, дане сприймається як десяткове число.
Мікропроцесор МС68000 виконує читання з пам’яті 16-розрядних операндів, так само як їх запис у пам’ять, навіть коли у команді вказується у якості операнда байт; у циклі звернення до пам’яті вибирається слово, молодший байт якого використовується як операнд. Довге слово вибирається за два послідовних цикли шини, причому першими вибираються старші 16 розрядів. Таким чином, адреси команд або даних, що їх формує МП, мають бути парними.
Мікропроцесори МС68000 та старші моделі використовують такі способи адресації операндів:
регістрова (операнд у регістрі даних або адреси), наприклад
МOVЕ.В D1, D0
MOVЕ.L A2, A3;
непряма регістрова (операнд у комірці пам’яті, яка є адресована вмістом регістра адреси), наприклад
MOVЕ (A0), D1
непряма регістрова з постінкрементом (операнд у комірці пам’яті, адреса якої знаходиться в адресному регістрі і після виконання команди нарощується на 1, 2 або 4 залежно від довжини вказаного операнда), наприклад
MOVЕ D3, (A1)+ ; Вміст А1 після виконання команди
; нарощується на 2
непряма регістрова з предекрементом (операнд у комірці пам’яті, адреса якої знаходиться в адресному регістрі, і перед виконанням команди зменшується на 1, 2 або 4 залежно від довжини вказаного операнда), наприклад
MOVЕ.L -(A1), D2 ; Вміст A1 перед виконанням команди
; зменшується на 4
непряма регістрова зі зміщенням (операнд у комірці пам’яті, адреса якої є алгебраїчна сума вмісту регістра адреси та 16-розрядного зміщення, яке задається у команді), наприклад
MOVЕ.B -$A (A0), D3 ; Для МП МС68000
MOVЕ.В ($44, А3), D4 ; Для старших моделей
непряма регістрова з індексуванням (операнд у комірці пам’яті, адреса якої є сума вмісту регістра адреси, індексного регістра та зміщення, заданого у команді), наприклад
CLR.B $40 (A0, D3.W) ; Для МП МС68000
CLR ($1234 A2, D3.L) ; Для старших моделей
пряма (операнд у комірці пам’яті, адреса якої задається числом зі знаком, прямо указаним у команді), наприклад
JMP $1234 ; Для МП МС68000
MOVЕ.B D0, -$07FF.W ; Для старших моделей, ефективна адреса
; становить $FFF801
відносна (операнд у комірці пам’яті, адреса якої є сума поточного вмісту програмного лічильника РС та заданого у команді зміщення); поточний вміст РС, який використовується для обчислення відносної адреси, дорівнює адресі першого слова виконуваної команди плюс 2, наприклад
JMP * + $10 ; Для МП МС68000
JMP (* + $10, PС) ; Для старших моделей
відносна з індексуванням (операнд у комірці пам’яті, адреса якої є сума вмісту РС, індексного регістра та зміщення, заданого у команді), наприклад
СLR $10 (PC, A2.W) ; Для старших моделей
СLR ($1000, PC, A2.W) ; Для старших моделей
безпосередня (значення операнда задано безпосередньо у команді), наприклад
MOVЕQ #$40, D3 ; Швидке завантаження
MOVЕQ #64, D3 ; безпосередньо заданого операнда у D3
МП сімейства М680Х0 підтримують усі способи адресації, що і МП МС68000, і крім того, додаткові типи непрямої регістрової адресації з індексуванням.