Mov ax, 4c00h
Call far ptr sub
Start proc far
Прямой дальний вызов
End start
Sub endp
Start endp
Int 21h
Mov ax, 4c00h
Start proc far
Code
Прямой ближний вызов
Способы вызова процедуры
Начало процедуры может быть обозначено меткой, а в случае косвенного вызова, когда адрес вычисляется и заносится в выделенную ячейку, наличие метки в точке входа в подпрограмму необязательно.
Команда CALL помещает в стек содержимое IP и загружает в этот регистр адрес точки входа. В стеке будет задействовано только 2 байта.
Пример:
…
…
call sub
…
…
sub proc near
…
…
ret
По команде CALL в стек заносится содержимое регистров cs и ip (4 байта).
Пример:
В программе объявлены 2 кодовых сегмента.
seg1 segment 'code'
…
…