CALL – вызов процедуры
9A cd | CALL ptr16:16 | дальний переход к подпрограмме | |||
E8 cw | CALL rel16
| ближний переход к подпрограмме | |||
FF /2 | CALL r/m16 | ближний косвенный переход к подпрограмме | |||
FF /3 | CALL m16:16 | дальний косвенный переход к подпрограмме |
Описание.
Адрес команды, следующей за инструкцией CALL, сохраняется в стеке. После этого происходит переход на первую команду вызываемой процедуры, адрес которой задан операндом инструкции CALL.
Команда CALL используется для выполнения как ближних (внутрисегментных), так и дальних (межсегментных) переходов. При ближнем переходе в стеке сохраняется только смещение следующей инструкции (содержимое регистра IP), при дальнем переходе сохраняется полный адрес – сначала содержимое регистра CS, а затем регистра IP.
Ближние переходы осуществляются с применением относительной (с 16-разрядным отклонением) и косвенной адресации, дальние – с применением прямой и косвенной адресации.
Флажки не изменяются.