17. Безусловная передача управления

    Для безусловной передачи управления используются следующие операторы:

  • CALL RET – вызов и возврат из процедуры
  • INT, IRET – вызов и возврат из прерывания
  • JMP – безусловный переход
JMP [модификатор] <адрес перехода> 

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

Если метка расположена раньше JMP, то транслятор автоматически сформирует команду короткого внутрисегментного перехода.

Косвенный безусловный внутрисегментный переход
Lea bx m1
JMP near ptr[bx]
…
M1 inc CX
Addt.m1 dw m1
Jmp ad ad dr-m1
Прямой межсегментный переход

Файл1								Файл2
Public1.m1						public m2
Extern m2:far						extern m1.far
Jmp far ptr m2						m2 LABEL far
…							….
M1 LABEL far						
Add BX, CX						jmp far ptr.m1
Косвенный межсегментный переход
Файл 1							Файл 2
Extern1 m1:far						public m1
Addr.m1 dd m1						m1 LABEL far
							Add si, io
Lea bx, addr m1
Jmp d word ptr[BX]
17.07.2015