Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ntjhbz_igjhs.docx
Скачиваний:
22
Добавлен:
17.09.2019
Размер:
82.25 Кб
Скачать

23) Команды условного и безусловного переходов.

Команды управления

а) команды условной передачи управления (КУПУ)

б) команды безусловной передачи управления (КБПУ)

Формат купу

КОП смещение от текущего IP. Смещения бывает близкое (однобайтное) в диапазоне ±127 байт. Команды дальнего перехода не существуют, нужно пользоваться КБПУ. Условие, по которому осуществляется условный переход, осуществляется как правило:

а) с отношением между числами (беззнаковые: выше, ниже, по числовой оси; знаковые: не равно, равно, больше, меньше, больше или равно, меньше или равно).

б) с состоянием определённого флага.

JE переход, если равны JZ

JNE переход, если не равны JNZ

JL переход, если меньше JNGE

JNL переход, если не меньше JGE

JG переход, если больше JNLE

JNG переход, если не больше JLE

JB ниже JNAE

JNB не ниже JAE

JA выше JNBE

JNA не выше JBE

Знаковые

беззнаковые

Условия, связанные с состоянием флагов.

JS FC=1

JNS FC=0

JC FC=1

JNC FC=0

JP FP=1

JNP FP=0

Формат кбпу.

К командам этой группы относятся

а) JMP адрес

б) вызов подпрограммы [call адрес (имя)]

в) Ret – выход из подпрограммы

24) Подпpогpаммы. Типы вызовов подпpогpамм. Передача паpаметpов в подпpогpаммы.

Для идентификации подпрограмм используется директива

PROC – начало п/п

ENDP – конец п/п

Формат:

Имя PROC Тип перехода

Тело п/п

------------------------------

RET

Имя ENDP

Типы перехода: 1) Near; 2) Far

Переходы бывают короткими и длинными. Короткие – по умолчанию ±127 байт (near). Дальние (far) – переход с учётом сегментного регистра.

Команды возврата не имеют типа перехода. Вызов п/п осуществляется командой CALL (Call <имя> – команда обеспечивает:

1) сохранение адреса возврата в стеке (регистр IP);

2) запуск выполнения вызываемой процедуры, то есть загрузку в IP нового адреса)

RET – осуществляет выборку из стека адреса возврата и загрузку его в IP.

Передача параметров в п/п

- Через регистры

- Через стек

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

Перед входом в п/п в основной программе в стек с помощью push передаются параметры; в начале п/п из стека эти параметры извлекаются в обратном порядке.

25) Макpокоманды. Формальные локальные параметры. Формирование библиотеки макроопределений.

Макрокоманды представляют собой последовательность операторов на языке TASM, неоднократно повторяющуюся в тексте программы. Подобная последовательность операторов описывается в программе отдельно, ей присваивается имя.

Структура:

Имя Macro <список формальных параметров> Local <список локальных меток> ENDM

Список формальных параметров – наименьшие параметры, которые передаются в макрос в виде списка после его имени. В теле макроса эти значения подставляются в соответствии параметрам.

Список локальных меток – имена меток внутри тела программы, эти имена могут иметь те же названия, что и в основной программе и не пересекаться.

Макрос описывается в программе в любом месте, но до начала её использования в теле программы.

TASM в процессе ассемблирования подставляет вместо имени макроса последовательность операторов, которыми она описана.

По сравнению с п/п макросы позволяют:

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

- ускорить выполнение программы, т.к МП не нужно отвечать на вызов п/п.

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