October 19 2017 19:14:18
Навигация
Авторизация
Логин

Пароль



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

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

Базово-индексная адресация с масштабированием. Относительный адрес образуется сложением масштабированного индекса и базы, в качестве которой используется содержимое одного из регистров: ЕАХ, ЕВХ, ЕСХ, EDX, ESP, ESI или EDI. Выбор базового регистра задается значением поля BASE при MOD = 00 (см. табл. 2.13).

Базово-индексная адресация со смещением и масштабированием. Относительный адрес формируется сложением масштабированного индекса, базы и смещения d8 или d32. Поле BASE задает выбор базового регистра (см. табл. 2.13), а поле MOD = 01 или 10 определяет разрядность смещения (см. табл. 2.11).

При описанных способах задается относительный адрес операнда в сегменте данных DS или стека SS (см. табл. 2.11).Для адресации операндов в других сегментах перед командой необходимо ввести префиксный байт SEG.

Относительная адресация. Используется при выполнении ряда команд управления (условные и безусловные переходы, вызовы подпрограмм, управление циклами), чтобы адресовать ячейку памяти, содержащую следующую команду. При этом способе адрес формируется как сумма содержимого регистра EIP, соответствующего текущей команде, и смещения d8, d16 или d32, определяющего положение следующей команды относительно текущей.

2.2. СИСТЕМА КОМАНД: ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ

К этому классу относятся команды выполнения пересылок, арифметических и логических операций, сдвигов и других преобразований данных, в том числе операции над битами и строками символов. Ниже дается перечень команд этого класса, разбитых на несколько функциональных групп.

Пересылка данных и адресов

Пересылка данных без преобразования:

MOV - Пересылка операнда

CMOVcc -Условная пересылка операнда

SETcc - Условная установка байта

PUSH - Запись операнда в стек

PUSHA(D) - Запись в стек содержимого всех регистров

POP - Чтение операнда из стека

POPA(D) - Чтение из стека содержимого всех регистров

XCHG - Обмен между регистрами или памятью и регистром

XLAT - Преобразование кодов

BSWAP -Перестановка байтов

Пересылка данных с преобразованием:

MOVSX- Пересылка байта или слова с расширением знака

MOVZX- Пересылка байта или слова с расширением нулями

Ввод/вывод данных:

IN - Ввод операнда из порта в аккумулятор

OUT  - Вывод операнда из аккумулятора в порт

Загрузка эффективного адреса и селекторов:

LEA-Загрузка эффективного адреса ЕА в регистр

LDS - Загрузка указателя адреса для сегмента DS

LES - Загрузка указателя адреса для сегмента ES

LFS - Загрузка указателя адреса для сегмента FS

LGS - Загрузка указателя адреса для сегмента GS

LSS - Загрузка указателя адреса для сегмента SS

Арифметические операции

Сложение:

ADD - Сложение операндов

ADC - Сложение операндов с признаком CF (перенос)

XADD - Обмен операндами и сложение

INC - Инкремент операнда

ААА - ASCII - коррекция результата сложения

DAA - Десятичная коррекция результата сложения

Вычитание:

SUB - Вычитание операндов

SBB - Вычитание операндов и признака CF (заем)

DEC - Декремент операнда

NEG - Изменение знака операнда (с переводом в дополнительный код)

AAS - ASCII-коррекция результата вычитания

DAS - Десятичная коррекция результата вычитания

Сравнение:

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

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

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

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