Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler 01.doc
Скачиваний:
19
Добавлен:
09.11.2019
Размер:
727.04 Кб
Скачать

Логика и организация программы

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

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. Специальные арифметические проверки:

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

флаги

JS Переход, если есть знак (отрицательно) SF

JNS Переход, если нет знака (положительно) SF

JC Переход, если есть перенос (аналогично JB) CF

JNC Переход, если нет переноса CF

JO Переход, если есть переполнение

JNO Переход, если нет переполнения

JPE Переход, если паритет четный PF

JNP Переход, если паритет нечетный PF

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]