October 19 2017 17:20:11
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команда пересылки MOV
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

Команды этой группы приведены в табл. 2.15. Значения признаков в регистре EFLAGS при выполнении команд пересылок не изменяются.

Команда пересылки MOV имеет ряд модификаций, основная из которых MOV r/m,m, MOV m,r/m -выполняет передачу данных (регистр-регистр) или (регистр-память) между регистрами общего назначения и ячейками памяти. Модификация MOV A,m, MOV m,А, которая реализует загрузку или сохранение в памяти содержимого аккумулятора, имеет сокращенный формат (отсутствуют байты адресации MODR/M, SIB). При этом в команде задается относительный 16- или 32-разрядный адрес операнда сМ6 или d32 в адресуемом сегменте данных, т. е. используется только прямая адресация памяти. Модификация MOV r/m,im производит запись в регистр или ячейку памяти непосредственно заданного операнда. Пересылки с участием управляющих регистров CR4-CR0 или регистров отладки DR7-DR0 (команды MOV Cri,r, MOV r,CRi, MOV Dri,r, MOV r,DRi) выполняются только в защищенном режиме программами, имеющими высший уровень привилегии 0. Они не реализуются в режиме виртуального 8086. В качестве регистра г должен использоваться один из 32-разрядных регистров общего назначения.

В процессорах семейства Р6 введены команды условной пересылки CMOVcc. Эти команды производят передачу данных только в случае выполнения определенного условия (cc), которое задается различными значениями признаков, установленных в регистре EFLAGS. Вид проверяемого условия указывается с помощью суффикса cc, вводимого в мнемокод команды: например, CMOVZ-пересылка, если значение признака ZF = 1. Виды условий и соответствующие суффиксы се в командах CMOVcc аналогичны используемым в командах условных переходов Jcc, которые рассмотрены в п. 2.3.1 (см. табл. 2.22).

Две модификации команды XCHG обеспечивают обмен содержимым (регистр-регистр или регистр-память). В обмене могут участвовать только регистры общего назначения.

Модификация XCHG A,r, реализующая обмен (аккумулятор-регистр), имеет сокращенный формат команды (без байтов адресации MODR/M, SIB).

Команды PUSH, POP производят запись в стек или извлечение из стека 16- или 32-разрядных операндов. В стек может быть загружено содержимое регистра, ячейки памяти или непосредственный операнд im. При извлечении из стека данные могут поступать в регистр общего назначения, ячейку памяти или указанный в команде сегментный регистр sreg. Адресация стека производится с помощью регистра ESP (или SP), который содержит относительный адрес последней заполненной ячейки памяти в сегменте стека SS. При выполнении команды PUSH содержимое ESP (или SP) уменьшается на 4 (или на 2), адресуя выше расположенную (незаполненную) ячейку стека, которая становится его новой вершиной. Эта ячейка затем заполняется поступающими данными. При выполнении команды POP производится выборка данных из ячейки стека, адресуемой содержимым регистра ESP (или SP). После выборки содержимое этого регистра увеличивается на 4 (или 2), адресуя ниже расположенную заполненную ячейку стека, которая становится его новой вершиной.

Команды PUSHA, PUSHAD и РОРА, POPAD выполняют запись в стек и извлечение из него всех восьми регистров общего назначения. При этом последовательно заполняются или освобождаются восемь 16- или 32-разрядных ячеек стека. Соответственно содержимое регистра ESP (или SP) уменьшается или увеличивается на 32 (9 или 16). Команды PUSHA, РОРА оперируют с 16-разрядными регистрами АХ, СХ, DX, BX, SP, BP, SI, DI, команды PUSHAD, POPAD-с 32-разрядными регистрами ЕАХ, ЕСХ, EDX, EBX, ESP, EBP, ESI, EDI.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.13 секунд 2,256,114 уникальных посетителей