Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Команда CALL
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Команда CALL в Ассемблере вызывает процедуру. Синтаксис:
CALL ИМЯ
Здесь ИМЯ может быть одним из следующих:
Флаги при выполнении команды CALL не изменяются.
Инструкция CALL выполняет следующие действия:
- Передаёт управление процедуре.
- Записывает в стек адрес следующей команды (из регистра IP в 16-разрядном режиме или EIP - в 32-разрядном).
- В случае дальнего вызова регистр CS также записывается в стек.
Если вместо имени процедуры используется адрес, то он может быть записан в формате СЕГМЕНТ:СМЕЩЕНИЕ. Если в качестве адреса указать только смещение, то считается, что адрес расположен в том же сегменте, что и команда CALL (при этом выполняется ближний вызов процедуры).
Как уже было сказано, команда CALL передаёт управление по адресу, который передаётся в команду в качестве параметра. При этом процессор начинает выполнять команду, расположенную по этому адресу.
Если операндом команды CALL является регистр или переменная, то её значение рассматривается как абсолютное смещение.
Если операнд - это ближняя метка в программе, то ассемблер указывает её относительное смещение.
Пример использования команды CALL см. здесь.
Ну и напоследок об имени команды. Слово CALL переводится как “вызов” или “вызывать, вызвать”. То есть команда
CALL Х
по-русски будет звучать как “вызвать Х”, где Х - это, как правило, имя процедуры. Хотя, как вы теперь знаете, на самом деле эта команда не вызывает процедуру, а передаёт управление той команде, которая находится по указанному адресу Х.
Подписаться на Дзен-канал
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься». У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение. Подробнее... |