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'