Реферат: Структурне програмування на асемблері
(видати на екран "Будь ласка, введіть ваш пароль:")
(Перевірити пароль. Якщо він правильний, покласти флаг CF
рівним 1.)
$LEAVE CF
(видати на екран "Ви схибили. спробуйте ще раз" )
$ENDDO
ДОДАТКОВІ ОПЕРАНДИ
Подібно до оператора $IF, що описаний в розд. 2, оператори $ENDDO і $LEAVE допускають вказівку операції AND (И) або OR (АБО), що дозволяє комбінувати умови. Крім того, в них можна вказувати атрибут LONG, що забезпечує можливість користуватися довгими блоками команд. Нарешті, в операторі $ENDDO можна вказувати параметр LOOP, що позбуває від необхідності зменшувати значення регістра СХ. Загальна форма цих операторів
$ENDDO [умова[,AND/OR]][,LONG]
$ENDDO [LOOPx][,LONG]
$LEAVE умова[,AND/OR][,LONG]
ПАРАМЕТР LOOP
Для циклів із заданим числом повторень, лічильником яких служить регістр СХ, у програмі SALUT можна за рахунок застосування форми $ENDDO LOOP опустити команду DEC СХ. Інакше кажучи, замість форми
$DO
...
...
DEC CX
$ENDDO CXZ
Можна використовувати більш просту форму
$DO
...
...
$ENDDO LOOP
Вона змушує програму SALUT замінити оператор $DO на мітку, а оператор $ENDDO -- на команду LOOP мітка. Команда LOOP зменшує значення регістра СХ на 1 і змушує мікропроцесор передати керування мітці, якщо значення СХ не нуль.
Щоб врахувати при ухваленні рішення про закінчення циклу стан флага нуля ZF, користуємося одним із таких операторів:
- Оператор $ENDDO -- зменшує значення регістра СХ і повертає керування на початок циклу, якщо значення регістра СХ не дорівнює 0 і прапор ZF дорівнює 1. Це дозволяє виявляти перший ненульовий результат у серії операцій.
- Оператор $ENDDO LOOPNE зменшує значення регістра СХ і повертає керування на початок циклу, якщо значення регістра СХ не дорівнює 0 і флаг ZF рівний нулю. Це дозволяє виявляти перший нульовий результат у серії операцій.
- Оператор $ENDDO LOOPZ є альтернативною формою оператора $ENDDO LOOPE.
- Оператор $ENDDO LOOPNZ є альтернативною формою оператора $ENDDO LOOPNE.
ОПЕРАЦІЇ AND І OR
Операція AND завершує цикл, якщо декілька умов виконуються одночасно, а операція OR завершує цикл, якщо виконується будь-яка з кількох умов. Наприклад, нижче показана загальна форма структури DO, що завершує цикл, якщо у відповідь на запрошення до вводу користувач відповість "Ні", набравши на клавіатурі "Н" або "н":
$DO