- •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 модулю
9.3.1 Формат команди
Формат рядка команди складається з кількох полів, деякі з котрих не є обов’язковими. Формат рядка команди показано на рис. 9.9. У фігурних дужках показано необ’язкові елементи.
Поле мітки |
Поле команди |
Поле операндів |
Поле коментарів |
{Мітка:} |
{Префікс}Команда |
{операнди} |
{;Коментар} |
Рисунок 9.9 – Формат команди Асемблера
Мітка – це символічне ім’я, що відповідає значенню поточного вмісту лічильника адреси в поточному сегменті коду. Вміст лічильника адреси відповідає значенню регістра вказівника команд (ІР) при виконанні програми, тому мітка – це адреса команди, до якої необхідно зробити умовний або безумовний перехід. Мітка відокремлюється від інших частин рядка двокрапкою. Максимальна довжина мітки – 31 символ. Кожна мітка у програмі повинна бути унікальною. У якості міток не допускається використовувати службові слова.
Префікс – це елемент команди, котрий уточнює або модифікує її дію у випадках:
зміна сегмента, якщо нас не задовольняє значення сегмента за умовченням;
зміна розрядності адреси;
зміна розрядності операнда;
вказівка на повторення цієї команди.
Команда (мнемокод) – службове слово, яке відповідає типу машинної команди, що генерується. В якості команди використовуються скорочені (повні) англійські слова або абревіатури англійських слів, що передають значення основної функції команди. В залежності від подання операндів, для виконання однієї команді може генеруватися декілька кодів.
Операнди – імена, які надаються об’єктам, над якими виконується операція (команда). У команді можуть один або два операнди, які відокремлюються один від одного комою. Є команди, в котрих операндів немає. Поле операндів відокремлюється від поля команди пропуском. У команді можливі лише такі сполучення операндів:
регістр – регістр;
регістр – пам’ять;
пам’ять – регістр;
безпосередній операнд (число) – регістр;
безпосередній операнд (число) – пам’ять.
У якості операндів, які можуть оброблюватися транслятором використовуються:
постійні або безпосередній операнди – числа, рядки, імена або вирази, які мають фіксоване значення. Імена, які використовуються у якості безпосередніх операндів, задаються операторами =: або equ;
адресні операнди – адреси розміщення операндів у пам’яті. Задаються за допомогою двох складових адреси – сегмента і зміщення;
переміщувані операнди – символьні імена, які є певними адресами пам’яті. Такі адреси вказують на розташування у пам’яті певних інструкцій (операнд – мітка) або даних (операнд – ім’я області пам’яті у сегменті даних). Переміщувані операнди відрізняються від адресних тим, що вони не зв’язані з конкретною адресою фізичної пам’яті, а формуються після завантаження програми для її виконання;
лічильник адреси – це спеціфічний вид операнда, який позначається символом $. Транслятор замість цього символа ставить поточне значення вказівника команд і модифікує його значення відповідно до зміщення;
регістровий операнд – ім’я відповідного регістра, вміст котрого використовується у команді;
базові і індексні операнди – операнди, які використовуються при адресуванні за базою, індексного адресування або їх комбінацій.
Загальний формат команди показано на рис. 9.10.
Можлива кількість байт |
|||
1 |
1 |
0 – 2 або 4 |
0 – 2 або 4 |
К од операції |
Байт режиму адресування |
Зміщення у команді |
Безпосередній операнд |
Рисунок 9.10 – Загальний формат команди асемблера МП фірми Intel
Байт коду операції – це обов’язковий елемент, що описує операцію, яка буде виконуватися. Складається з поля коду (COP) операції і двох однобітових полів:
w – відповідає типу операндів, які використовуються у команді
w = 0 – команда працює з байтами
w = 1 – команда працює зі словами;
d – адресує приймач результату
d = 1 – відбувається передавання операнда або результату операції у регістр rg2, який описано у другому байті команди
d = 0 – відбувається передавання із цього регістру;
s – біт, який є ознакою використання одного байта безпосереднього операнду при роботі зі словами. Використовується сумісно зі значенням w.
Байт режиму адресування визначає форму подання адреси операндів. Складається з трьох полів:
md – визначає довжину адреси операнда (у байтах), яка подана у наступних байтах – зміщення у команді
COP або rg2 – значення COP використовується для уточнення операції, що виконується; rg2 визначає регістр, у якому знаходиться операнд, який умовно вважається другим;
rg1 або mem – визначає операнд, який може бути розміщено у комірці пам’яті або у регістрі. Цей операнд умовно вважається першим. Кодування полів rg2 і rg1 в залежності від значення біту s подано у табл. 9.2.
Таблиця 9.2 – Кодування полів rg2 і rg1
-
rg2 / rg1
w = 0
w = 1
rg2 / rg1
w = 0
w = 1
000
AL
AX
100
AH
SP
001
CL
CX
101
CH
BP
010
DL
DX
110
DH
SI
011
BL
BX
111
BH
DI
Контрольні запитання:
Який формат має рядок команди мови Асемблер?
Що називається операндом у рядку команди мови Асемблер?
Які сполучення операндів є можливими?
Який формат має команда асемблера МП фірми Intel?
У яких байтах може розміщуватися поле коду операції?
За допомогою яких бітів кодується тип операндів, що використовуються у команді?
За допомогою яких полів визначаються регістри, які використовуються у команді?
Доведіть, що операнди команди MOV AX, BX розташовано у регістрах, якщо формат (код) цієї команди становить 89D8Н.