Команда CALL


Как выучить английский Как выучить английский

В наше время любой человек должен знать английский язык. А тем более программист. Потому что довольно большая часть документации существует только на английском. А профессионал не может ждать, пока кто-то переведёт ему документацию. Он должен уметь быстро получать нужную инфорамцию и использовать её, независимо от того, на каком она языке - на английском или на русском... Ссылки на курсы по английскому...

Команда CALL в Ассемблере вызывает процедуру. Синтаксис:

CALL ИМЯ

Здесь ИМЯ может быть одним из следующих:

  1. Имя процедуры
  2. Метка
  3. Переменная
  4. Регистр
  5. Адрес (непосредственное значение)

Флаги при выполнении команды CALL не изменяются.

Инструкция CALL выполняет следующие действия:

  • Передаёт управление процедуре.
  • Записывает в стек адрес следующей команды (из регистра IP в 16-разрядном режиме или EIP - в 32-разрядном).
  • В случае дальнего вызова регистр CS также записывается в стек.

Если вместо имени процедуры используется адрес, то он может быть записан в формате СЕГМЕНТ:СМЕЩЕНИЕ. Если в качестве адреса указать только смещение, то считается, что адрес расположен в том же сегменте, что и команда CALL (при этом выполняется ближний вызов процедуры).

Как уже было сказано, команда CALL передаёт управление по адресу, который передаётся в команду в качестве параметра. При этом процессор начинает выполнять команду, расположенную по этому адресу.

Если операндом команды CALL является регистр или переменная, то её значение рассматривается как абсолютное смещение.

Если операнд - это ближняя метка в программе, то ассемблер указывает её относительное смещение.

Пример использования команды CALL см. здесь.

Ну и напоследок об имени команды. Слово CALL переводится как “вызов” или “вызывать, вызвать”. То есть команда

CALL Х

по-русски будет звучать как “вызвать Х”, где Х - это, как правило, имя процедуры. Хотя, как вы теперь знаете, на самом деле эта команда не вызывает процедуру, а передаёт управление той команде, которая находится по указанному адресу Х.



Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика