Косвенный дальний вызов процедуры
Call word ptr bx ; адрес процедуры в регистре bx
Mov bx, offset subr
End start
Subr endp
Ret
Subr proc near
Start endp
Int 21h
Mov ax, 4c00h ; выход
Call word ptr subadr ; из памяти взять слово
Mov ds,ax
Start proc
Code
Data
Косвенный ближний вызов
Seg2 ends
Sub endp
Ret
Seg1 ends
Start endp
Int 21h
seg2 segment 'code'
sub proc far
…
Подразумевает запись адреса точки входа (смещения) в ячейку памяти либо регистр и обращение при запуске процедуры к памяти или к регистру, где хранится адрес.
Пример
subadr dw subr; по адресу subadr записан адрес метки sub
… mov ax,@data
…
…
…
При косвенном запуске программы возможны другие варианты,
например:
dseg segment ‘data’