- •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 Асинхронний послідовний адаптер rs-232-c
- •7 Мікропроцесори
- •7.1 Архітектура мікропроцесорів
- •7.2.1 Історична довідка про розвиток мікропроцесорів фірми Intel (Для самостійного вивчення)
- •7.2.2 Організація 16-розрядних мікропроцесорів
- •7.2.3 Програмна модель мп і8086
- •7.2.4 Режим переривань мп і8086
- •7.2.5 Організація 32-розрядних мікропроцесорів (Для самостійного вивчення)
- •7.3 Архітектура сучасних мікропроцесорів
- •7.3.1 Тенденції розвитку архітектури сучасних мікропроцесорів
- •7.3.2 Мікропроцесори Pentium
- •7.3.3 Процесори фірми amd
- •7.3.4 Продуктивність мікропроцесорів та її оцінювання
- •8 Використання сучасних мікропроцесорів
- •Список рекомендованої літератури
- •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 Програмна реалізація мультиплексора
- •Список рекомендованої літератури
9.3.5 Команди організації циклів
Вхідний контроль:
Які види циклічних програм Ви знаєте?
В чому полягає різниця між арифметичним та ітераційним циклами?
В якому регістрі організується програмний лічильник циклів?
Наведіть приклади організації циклів будь-якою мовою високого рівня.
Покажіть на прикладах, як задається кількість повторень циклів будь-якою мовою високого рівня.
До команд управління циклом відносяться:
команди організації циклу з лічильником ЕСХ/СХ;
команди організації циклу з лічильником ЕСХ/СХ з можливістю дострокового виходу з циклу за додатковою умовою.
До першої групи відносяться команди:
JCXZ (Jump if CX=Zero) – перехід, якщо СХ дорівнює 0;
JECXZ (Jump if ECX=Zero) – перехід, якщо ЕСХ дорівнює 0.
Операндом в усіх командах слугує зміщення (мітка), за допомогою якого визначається адреса переходу.
Команди перевіряють вміст відповідного лічильника і якщо його вміст дорівнює 0, відбувається перехід на вказане у команді зміщення (мітку), а якщо не дорівнює, то виконується наступна команда.
До команд другої групи відносяться команди:
LOOP (LOOP control by register CX) – управління циклом за вмістом регістра СХ;
LOOPE/LOOPZ (LOOP control by register CX not equal 0 and ZF=1) – управління циклом за вмістом регістра СХ з урахуванням значення прапорця ZF;
LOOPNE/LOOPNZ (LOOP control by register CX not equal 0 and ZF=0) – управління циклом за вмістом регістра СХ з урахуванням значення прапорця ZF.
Команда LOOP <адреса> забезпечує умовний перехід для циклічного виконання ділянки програми. Кількість повторень циклу визначається вмістом регістра ЕСХ/СХ. Усі різновиди команди LOOP автоматично виконують декремент вмісту ЕСХ/СХ і зупиняють виконання циклу, якщо вміст лічильника дорівнює 0.
Команди LOOPE/LOOPZ є різновидами однієї команди, так само як і команди LOOPNE/LOOPNZ. Алгоритм виконання цих команд однаковий. Команди декрементують вміст ЕСХ/СХ й аналізують його вміст і значення прапорця ZF, якщо вміст ЕСХ/СХ дорівнює 0, то виконується наступна за LOOPхх команда, якщо вміст ЕСХ/СХ дорівнює 1, то виконується перехід до початку циклу. Якщо значення ZF = 0, то команди LOOPE/LOOPZ виконують вихід з циклу, а команди LOOPNE/LOOPNZ повертаються до початку циклу. Для значення ZF = 1 команди виконується навпаки. Команди LOOPNE/LOOPNZ можливо використовувати для пошуку першого нульового елементу у рядку даних, якщо безпосередньо перед цією командою виконати порівнювання елемента з 0, а команди LOOPE/LOOPZ для пошуку першого ненульового елементу.
Контрольні запитання:
Які групи команд управління циклом Ви знаєте?
Що слугує операндом у командах управління циклом?
Як виконується декремент вмісту регістра-лічильника CX у програмі при використанні команд JCXZ і LOOP?
Які прапорці перевіряє команда LOOPЕ?
Контрольні запитання підвищеної складності:
Для чого використовується мітка в командах передачі управління?
Яка команда буде виконуватися після виконання команди LOOPNZ М1
M1: MOV AX,DX
…
LOOPNZ М1
NOP,
якщо до її виконання в регістрі СХ було записано число 0001Н?
Як можливо використовувати команди LOOPE/LOOPZ при обробленні рядків даних?
Скільки разів буде виконуватись команда LOOPE М1, якщо до початку циклу в регістр СХ був записаний нуль?
Наведіть фрагмент програми, в якому вихід з циклу здійснювався б за умовою JPO M1.