Логика и организация программы
МЕТОДИЧЕСКИЕ УКАЗАНИЯ:
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. Специальные арифметические проверки: