Вы здесь: HomeCALL

CALL

CALL: Вызов процедуры. Выполняет короткий или длинный вызов  процедуры  для связи подпрограмм.  Для возврата из процедуры  используется  команда  RETКоманда CALL уменьшает содержимое SP на 2 и заносит в стек адрес следующей команды (из IP), а затем устанавливает в регистре IP  относительный  адрес процедуры. Впоследствии команда  RET  использует  значение  в  стеке  для возврата. Существует четыре типа команды CALL для вызова внутри сегмента и между сегментами.  Команда межсегментного  вызова  сначала  уменьшает SPзаносит  в  стек  адрес  из  регистра  CS,  а  затем  загружает  в    стек внутрисегментный указатель.

Пример ассемблер кода с использованием данной команды:

org 100h
call func
mov ax,4c00h
int 21h
msg db "Hello CALL!$"
func:
mov ah,9
mov dx,msg
int 21h
ret

Программа вызывает функцию которая выводит строку на экран, затем возвращается на следующую  команду после CALL, то есть  в нашем  случае выполниться mov ax,4c00h.

Добавить комментарий


Защитный код
Обновить