Реферат: Структурне програмування на асемблері
P
Parity (Even) - співпадання парності (хлопцю)
PF=1
PE
Parity Even – хлопцю
PF=1
PO
Parity Odd – непарне
PF=0
*S
Sign – знак
SF=1
Z
Zero – нуль
ZF=1
СТРУКТУРА IF З ЧАСТКОЮ ELSE
Як і в мові Бейсік, ви можете вставити ELSE і змусити мікропроцесор виконувати альтернативну групу команд у випадку, якщо умова не істинна. Тоді структура IF буде мати вигляд:
$IF умова
A (здійснюється, якщо умова істинна)
$ELSE
B (здійснюється, якщо умова не істинна)
$ENDIF
На мал. 1,б показана блок-схема, що пояснює дію структури $IF-$ELSE-$ENDIF.
ФУНКЦІОНУВАННЯ СТРУКТУРИ IF
Насправді оператори $IF, $ELSE і $ENDIF є командами для програми SALUT. Коли ми викликаємо програму SALUT, то вона перетворює ці оператори в рядки коментарів (так що Асемблер буде їх ігнорувати), а потім створює їхній еквівалент на мові асемблера. Після цього програма може бути відтрансльована Асемблером, тому що операторів $IF, $ELSE і $ENDIF в ній уже немає. У наступних розділах ми покажемо, як програма SALUT перетворить спочатку структуру $IF-$ENDIF, а потім структуру $IF-$ELSE-$ENDIF.
КОМАНДИ, ЩО ГЕНЕРУЮТЬСЯ ОПЕРАТОРАМИ $IF-ENDIF
Коли програма SALUT виявляє оператор $IF, вона генерує команду умовної передачі управління Jx, що змушує мікропроцесор пропустити оператори, що знаходяться між оператором $IF і наступним оператором $ENDIF. Звернемо увагу на слово «пропустити». Воно повідомляє нам, що програма SALUT повинна підставити команду Jx, обернену стосовно змісту операнда в операторі $IF. Отже, вона повинна замінити $IF Z на JNZ, а $IF на JNA. Звичайно, у кожної команди умовної передачі управління повинний бути адресат, і тому програма SALUT уставить мітку після оператора $ENDIF. Наприклад після того, як програма SALUT опрацює оператори $IF і $ENDIF, наш попередній приклад прийме такий вид:
CMP BX,0 ;Негативне значення?
;$IF L
JNL $$IF1
NEG BX ;Якщо так, змінити знак
;$ENDIF