Иллюстрированный самоучитель по Assembler


MP Безусловный переход


Команда jmp передает управление в указанную точку того же или другого программного сегмента. Адрес возврата не сохраняется. Команда не воздействует на флаги процессора.

Команда jmp имеет пять разновидностей:

- переход прямой короткий (в пределах -128... + 127 байтов);

- переход прямой ближний (в пределах текущего программного сегмента) ;

- переход прямой дальний (в другой программный сегмент);

- переход косвенный ближний;

- переход косвенный дальний.

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


short - прямой короткий переход;

near ptr - прямой ближний переход;

far ptr - прямой дальний переход;

word ptr - косвенный ближний переход;

dword ptr - косвенный дальний переход.

Примеры прямого короткого перехода


jmp short shpt ;Переход на метку shpt

;в пределах +127...-128 байтов

jmp shpt ;To же самое, если shpt

;находится выше по тексту программы

Примеры прямого ближнего перехода


jmp pt ;Переход на метку pt

;в пределах текущего сегмента

jmp near ptr pt ;To же самое

Примеры косвенных ближних переходов


Пример 1


mov BX,offset pt ;ВХ=адрес точки перехода

jmp BX ;Переход в точку pt


Пример 2


;В полях данных:

addr dw pt ;Ячейка с адресом точки перехода

;В программном сегменте:

jmp DS:addr ;Переход в точку pt

jmp word ptr addr ;To же самое

Пример 3


; В полях данных:

addr dw pt ;Ячейка с адресом точки перехода

;В программном сегменте:

mov DI,offset addr ;В1=адрес ячейки с адресом

;точки перехода

jmp [DI] ;Переход в точку pt


Пример 4


;В полях данных:

tbl dw ptl ;Ячейка с адресом 1

dw pt2 ;Ячейка с адресом 2

dw pt3 ;Ячейка с адресом 3

;В программном сегменте:

mov BX,offset tbl ;BX=aflpec таблицы адресов переходов

mov SI, 4 ;31=смещение к адресу pt3

call [BX][SI] ;Переход в точку pt3

Примеры прямых дальних переходов




Начало  Назад  Вперед



Книжный магазин