Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды безусловной передачи управленияСодержание книги
Поиск на нашем сайте
JMP opr — команда безусловной передачи управления (jump unconditionally— перейти безусловно). Операнд opr может быть задан прямым или косвенным адресом: l По прямому адресу: JMP метка. l По косвенному адресу. Косвенный адрес может быть задан: в регистре: JMP r или в памяти JMP символьное_имя. l В памяти с косвенной адресацией: JMP near ptr [SI]; JMP far ptr [BX] и т.д. В последних двух командах near ptr и far ptr указывать обязательно, так как какое слово содержится в регистре SI — обычное или двойное, — ассемблер заранее не знает и ему нужно помочь. Команды перехода к подпрограмме и выхода из подпрограммы Подпрограммы оформляются как процедуры. Процедура начинается именем процедуры и заканчивается командой выхода ret (return) и директивой endp. В программе процедура помещается в операторные скобки: proc... endp Около оператора proc могут быть указаны атрибуты дистанции: near — близкая процедура (в том же сегменте) или far — дальний вызов (если этот атрибут дистанции опущен, то подразумевается near). Пример: DISP proc far; в отличие от метки после имени процедуры двоеточие не ставится: ret DISP endp Команда перехода к подпрограмме: CALL opr Вызов процедуры (call a procedure — вызов процедуры), безусловная передача управления, выполняющая короткий или дальний вызов процедуры. Флаги не меняются. В команде CALL атрибуты near или far указывать не надо, так как ассемблер нужную информацию получит сам из директивы определения процедуры. По команде CALL должно быть выполнено: l запоминание в стеке адреса возврата (содержимого IP и CS для следующей команды: 16 битов, если near, и 32 бита, если far); l переход к выполнению процедуры (инициируется записью в IP и в CS (если far) нового адреса команды). Операнд opr, определяющий адрес процедуры, бывает: l непосредственным: CALL имя_процедуры; l прямым — процедуру с атрибутом near можно вызвать через регистр, в котором содержится смещение адреса процедуры: CALL r; l косвенным: l процедура с атрибутом near вызывается, используя переменную размером в слово: CALL word ptr символьное_имя, l процедура с атрибутом far — используя переменную размером в двойное слово: CALL dword ptr символьное_имя. Команда выхода из подпрограммы RET — возврат из процедуры (return from procedure). Команда извлекает из стека адрес возврата и возвращает управление из процедуры, вызванной ранее командой CALL. Необязательный параметр команды RET указывает количество байтов, которые освобождаются в стеке после извлечения адреса возврата. Если процедура имеет атрибут near, то команда RET извлекает из стека одно слово и заносит его в регистр IP; если процедура имеет атрибут far, то команда RET извлекает из стека два слова: сначала смещение адреса, а затем адрес сегмента, и заносит их, соответственно, в регистр IP и в регистр CS. Флаги не меняются. Процедуры могут быть вложенными, глубина вложения допускается любая (ограничивается лишь емкостью стека).
|
||||
Последнее изменение этой страницы: 2021-11-27; просмотров: 74; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.60.19 (0.006 с.) |