Реферат: Структурне програмування на асемблері

(Ми вставили мітку $$IF1 тільки для ілюстрації, тому що не знаємо яку мітку програма SALUT вставить насправді).

КОМАНДИ, ЩО ГЕНЕРУЮТЬСЯ ОПЕРАТОРАМИ $IF-$ ELSE-$ENDIF

При опрацюванні структури $IF-$ELSE-$ENDIF програма SALUT замінює оператор $IF на команду Jx, що передає керування мітці, що слідує за $ELSE, заміняє $ENDIF на іншу мітку і підставляє замість $ELSE команду короткої передачі керування JMP, що адресується до мітки при $ENDIF Таким чином, як показано на наступному схематичному лістингу, програма SALUT перетворить оператори лівої частини в ті, що зазначені справа.

$IF умова JN умова $$IF1

А

$ELSE JMP SHORT $$EN1

$$IF1:

В

$ENDIF $$EN1:

ВАРІАНТИ ОПЕРАНДУ

Загальна форма операторів $IF і $ELSE

$IF умова [,AND/OR][,LONG]

$ELSE [LONG]

де операції AND і OR дозволяють Вам указувати додаткові умови, а атрибут LONG забезпечує можливість використання довгих блоків команд у цій структурі.

ОПЕРАЦІЇ AND І OR

Дотепер ми обговорювали структури IF, що залежать від виконання тільки однієї умови, але (як і в мові Бейсік) ми можемо домогтися того щоб у структурі IF розглядалася комбінація умов у сполученні з операціями AND і OR

Проте між умовами в мові Бейсік і умовами на мові асемблера є визначені розходження. З одного боку, мікропроцесор розглядає кожний член вираження в порядку його появи; тут немає дужок, що задають порядок дій. З іншого боку, для кожного застосування операції AND або OR потрібно окремий оператор $IF, так що між ними можна поміщати команди.

Нижче приводиться загальний вид оператора $IF із двома умовами, сполученими операцією IF:

... (Обчислити умову1)

$IF умову1,AND

... (Обчислити умову2)

$IF умову2

... (Обидві умови виконані)

...

$ENDIF

Врахуємо, що команди обчислення умови 2 виконуються тільки в тому випадку, якщо умова 1 істинна. Якщо вона хибна, то мікропроцесор пропустить всі оператори аж до оператора $ENDIF. (Звернемо увагу і на те, що ми використовували тільки один оператор $ENDIF, оскільки операція AND об'єднує оператори $IF в один складний оператор.)

За допомогою команд, що слідують за першим оператором $IF, забезпечується установка флагу (або флагів) для другого оператора $IF. Наприклад, для видачі повідомлення "Вага в нормі", якщо значення WEIGHT знаходиться між 31 і 34, треба використовувати оператори

СМР WEIGHT,31

$IF AE,AND

СМР WEIGHT,34

$IF BE

(видати повідомлення "Вага в нормі")

К-во Просмотров: 481
Бесплатно скачать Реферат: Структурне програмування на асемблері