ЛОГИКА И ОРГАНИЗАЦИЯ ПРОГРАММЫ

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ:

1. Для выполнения лабораторной работы вы должны войти в каталог группы из панели NORTON. Каждый студент должен иметь в каталоге группы свой личный каталог. Все программы должны создаваться и записываться в личном каталоге студента.

2. После процедуры PROC в программе указывается тип адресов: SHORT, NEAR или FAR. Адресация SHORT используется при циклах, условных переходах и некоторых безусловных переходах. При этой адресации переход может выполняться вперед для выполнения новой группы команд или назад для повторения уже выполненных команд в пределах от -128 до +127 байт относительно адреса самой команды

перехода.

Адресация NEAR и FAR используются для вызовов процедур (CALL) и безусловных переходов, которые не квалифицируются как SHORT. Причем команда, превосходящая пределы перехода от -128 до +127 байт, получает тип FAR.

3. Метки процедур (например, В20:) должны завершаться двоеточием для указания типа NEAR. Отсутствие двоеточия приводит к ассемблерной ошибке.

4. Будьте внимательны при использовании индексных операндов. Сравните:

 

MOV AX,SI

MOV AX,[SI]

 

Первая команда MOV пересылает в регистр АХ содержимое регистра SI. Вторая команда MOV для доступа к пересылаемому слову в памяти использует относительный адрес в регистре SI.

5. При работе с отладчиком при трассировке кроме содержимого регистров на экран выводится состояние всех флагов. Расположение флагов по вертикали следующее:

 

DF IF TF SF ZF AF PF CF

 

Если флаг установлен, в соответствующей позиции на экране указывается комбинация из двух латинских букв (буквы N быть не должно). Если одна из этих букв буква N, значит этот флаг не установлен.

6. Команды переходов для беззнаковых данных:

 

Мнемоника Описание Проверяемые

Флаги

 

JE/JZ Переход, если равно/нуль ZF

JNE/JNZ Переход, если не равно/не нуль ZF

JA/JNBE Переход, если выше/ не ниже или равно ZF,CF

JAE/JNB Переход, если выше или равно/не ниже CF

JB/JNAE Переход, если ниже/не выше или равно CF

JBE/JNA Переход, если ниже или равно/не выше CF,AF

 

Беззнаковые данные используют все биты как биты данных. Характерным примером являются символьные строки, имена, адреса и натуральные числа.

7. Команды переходов для знаковых данных:

 

Мнемоника Описание Проверяемые

Флаги

 

JE/JZ Переход, если равно/нуль ZF

JNE/JNZ Переход, если не равно/не нуль ZF

JG/JNLE Переход, если больше/ не меньше или равно ZF,SF

JGE/JNL Переход, если больше или равно/не меньше SF

JL/JNGE Переход, если меньше/не больше или равно SF

JLE/JNG Переход, если меньше или равно/не больше ZF,SF

 

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

8. Специальные арифметические проверки: