ДОМ
|
Информационные технологии |
Низкоуровневое программирование |
3. АРИФМЕТИЧНІ ТА ЛОГІЧНІ ОСНОВИ ПРОГРАМУВАННЯ 4. МОДЕЛЬ МІКРОПРОЦЕСОРНОЇ СИСТЕМИ. ПРЕДСТАВЛЕННЯ ДАНИХ І СИСТЕМА КОМАНД 5. ОПЕРАТОРИ ДЛЯ ЗАПИСУВАННЯ АЛГОРИТМІВ ЛІНІЙНИХ ПРОЦЕСІВ 6. ОФОРМЛЕННЯ АЛГОРИТМІВ З ГАЛУЖЕННЯМ 7. ОФОРМЛЕННЯ АЛГОРИТМІВ ЦИКЛІЧНОГО ТИПУ 8. ПРОГРАМУВАННЯ НА МОВІ НИЗЬКОГО РІВНЯ return_links(); ?> |
ОФОРМЛЕННЯ АЛГОРИТМІВ З ГАЛУЖЕННЯМ
Принцип передачі управління у мікропроцесорній системі
Природній порядок виконання команд програми - послідовний. Тобто після виконання команди виконується наступна у програмі команда. Адреса наступної команди програми формується у командному вказівнику ip, який ще називають лічильником команд. Після виконання команди автоматично збільшується вміст ip.
Але завжди виникає необхідність змінити хід виконання програми, тобто здійснити перехід із однієї точки програми в іншу. Наприклад, якщо в результаті виконання деякої команди змінити вміст ip чи cs, то таким чином наступною буде виконуватися команда, що буде вибиратися із іншої ділянки пам'яті.
Розрізняють команди:
дальнього переходу (змінюють вміст регістрів ip і cs);
короткого і близького (змінюють вміст ip ).
Команда безумовного переходу
Jmp <адреса переходу> змінює вміст командного вказівника ip.
У якості адреси переходу можуть використовуватися мітки.
Фрагмент програми:
Команди умовного переходу
дозволяють організувати перехід до двох різних ділянок програми в залежності від деякої умови
Jcc <адреса переходу> тут сс - означає деяку умову, що перевіряється.
Фрагмент програми:
Регістр ознак
При виконанні ряду операторів (cmp, sub, add) відбувається установка ознак у регістрі ознак (рис 1).
В командах умовного переходу перевіряється стан однієї чи декількох ознак, які були виставлені до виконання цієї команди . Звичайно у попередній команді виконується порівняння деяких величин за допомогою команди Sub, Cmp.
Оператор порівняння Cmp
Оператор порівняння Cmp ставиться у відповідність команді віднімання, але значення результату не зберігається, вносяться лише зміни у регістр ознак.
Деякі команди умовного переходу
Приклад програми з галуженням
Завдання.
Записати на Асемблері програму порівняння вмісту комірок [120] i [122]. Якщо вміст комірки [120] більше вмісту комірки [122], то установити у регістрі cx число FFFF h , інакше установити у регістрі dx - CCCC h. Для тестування програми прийняти:
1. Розподілення комірок ОП:
Примітка:
2. Текст програми на Асемблері
Контрольні запитання і задачі
|
Copyright © Eugene, 2007 |