- •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.4 Команди умовних та безумовних переходів
До групи таких команд відносяться команди, котрі можуть зробити перехід не до наступної за даною командою, а до команди, яка знаходиться у іншій комірці програмної пам’яті, адреса якої визначається адресою переходу. Сегментна організація програмної пам’яті визначає два основні різновиди команд передачі керування. Перехід у межах поточного сегмента коду (програми) називається внутрисегментним, близьким (тип near). При такому переході модифікується лише вміст програмного лічильника РС. Передавання керування за межі поточного сегмента називається далекою (тип far). Для його реалізації необхідно змінити вміст двох регістрів: програмного лічильника РС і сегментного регістру коду CS. Команди передачі керування підрозділяються на команди безумовних переходів, умовних переходів, викликів і повернення з підпрограм, команди переривань.
Команди безумовних переходів
При виконанні таких команд виконується зміна вмісту регістра РС або одночасно РС і CS. Команди такого типу мають довжину 2 – 5 байтів в залежності від типу переходу і довжини зміщення у команді, яким задається адреса переходу.
JMP (JuMP) – команда безумовного переходу
Команда має вигляд
JMP мітка
Мітка може відповідати 8-, 16- або 32-розрядному зміщенню відносно наступної за JMP команди. При цьому змінюється лише вміст EIP/IP. Якщо мітка у команді – символічний ідентифікатор комірки пам’яті (16- 32- або 48-розрядна адреса, то асемблер визначає його як адресу, по котрій необхідно зробити перехід. Така адреса може відповідати як близкому, так і далекому переходу.
Команди умовних переходів
При виконанні цих команд асемблер робить аналіз певних ознак результатів і по результатам аналізу здійснює або не здійснює передачу керування.
Jcc (Jump if condition) – команда умовного переходу.
Перелік команд умовного переходу і умов, які перевіряються, подано у таблиці 9.4.
Таблиця 9.4 – Команди умовних переходів
№ п/п |
Дія |
Мнемоніка та формат |
Альтернативна мнемоніка |
Умова,що перевіряється |
1 |
2 |
3 |
4 |
5 |
1 |
Перейти, якщо нуль або дорівнює |
JZ opr |
|
ZF=1 |
2 |
Перейти, якщо не нуль або не дорівнює |
JNZ opr |
|
ZF=0 |
3 |
Перейти, якщо знак встановлено |
JS opr |
|
SF=1 |
4 |
Перейти, якщо знак скинуто |
JNS opr |
|
SF=0 |
5 |
Перейти, якщо є переповнення |
JO opr |
|
OF=1 |
6 |
Перейти, якщо немає переповнення |
JNO opr |
|
OF=0 |
7 |
Перейти, якщо паритет встановлений |
JP opr |
JPE |
PF=1 |
8 |
Перейти, якщо паритет скинуто |
JNP opr |
JPO |
PF=0 |
9 |
Перейти, якщо нижче/не вище або дорівнює (без знаку) |
JB opr |
JNAE |
CF=1 |
10 |
Перейти, якщо не нижче/ вище або дорівнює (без знаку) |
JNBE opr |
JA |
CF=0 |
11 |
Перейти, якщо менше/ не більше або дорівнює ( зі знаком) |
JL opr |
JNGE |
((CF) XOR(OF))=1 |
12 |
Перейти, якщо не менше/ більше або дорівнює ( зі знаком) |
JNL opr |
JGE |
((CF) XOR(OF))=0 |
13 |
Перейти, якщо менше або дорівнює/не більше (зі знаком) |
JLE opr |
|
((SF) XOR(OF)OR(ZF))=1 |
14 |
Перейти, якщо не менше або дорівнює/більше (зі знаком) |
JNLE opr |
JG |
((SF) XOR(OF)OR(ZF))=0 |
Використання і пояснення роботи деяких команд наведено у наступній програмі:
M1: NOP ; команда NOP (No Operation) – немає
; операції, рядок помічено міткою М1
M2: NOP ; операції немає, рядок помічено міткою М2
M3: JMP M4 ; команда безумовного переходу на мітку М4
MOV AX,1234H ; завантаження до регістра АХ числа 1234Н
MOV BX,5678H ; завантаження до регістра ВХ числа 5678Н
CMP AX,BX ; порівняння вмісту регістра АХ з вмістом – ВХ
JZ M1 ; умовний перехід на мітку М1, якщо результат
; порівняння дорівнює 0 (операнди рівні). У
; нашому випадку не відбувається, тому що
; операнди не рівні і прапорець ZF скинуто у 0
JNS M2 ; умовний перехід на мітку М1, якщо результат
; порівняння додатний 0 (прапорець SF = 0). У
; нашому випадку не відбувається, тому що
; 1234Н
; 5678Н
; ВВВСН (прапорець SF = 1)
JLЕ M3 ; умовний перехід на мітку М3, якщо вміст
; операнда dst (приймач) менший за опреранд
; src (джерело). В нашій програмі відбувається.