FE23  LOOCH  DISASM

СПРАВОЧНИК  ПО  КОМАНДАМ
ПРОЦЕССОРОВ  x86

(empty)
Главная Загрузка Инструкция Команды x86 Карта сайта

 

КОМАНДЫ ДЛЯ СЕГМЕНТНЫХ РЕГИСТРОВ


Команды загрузки полного указателя

 Команда Операнды  Код Формат
  LDS reg, mem   C5    --------  MRM
  LES reg, mem   C4    --------  MRM
  LFS reg, mem   0F  B4    -----sgr  MRM
  LGS reg, mem   0F  B5    -----sgr  MRM
  LSS reg, mem   0F  B2    -----sgr  MRM

В 16-битном режиме полный указатель (Far Pointer) состоит из адреса сегмента (16 бит) и смещения внутри сегмента (16 бит). Формат такого указателя обычно записывается как (16:16), указатель состоит из четырех байт. В 32-битном режиме для задания смещения требуется 32 бита, формат указателя будет (16:32), указатель состоит из шести байт.

Команды данной группы берут полный указатель (четыре байта или шесть байт) из оперативной памяти и засылают этот указатель в пару регистров (сегментный регистр : общий регистр). Например, это может быть пара (DS:EBX).

Сегментный регистр для засылки результата определен в имени команды (DS, ES, FS, GS, SS). Общий регистр для результата задается первым операндом (destination). Адрес памяти, откуда берется полный указатель, задается вторым операндом (source).

В машинном представлении команда состоит из кода операции (один или два байта) и байтов MRM. Напомним, что MRM - это байт (mod,reg,r/m) за которым, возможно, идет байт SIB и байты, задающие смещение. Причем поле ( reg ) задает первый операнд команды, а поле ( r/m ) второй операнд. Значение поля ( mod ) должно быть таким, чтобы второй операнд определял адрес памяти, а не регистр.

Команды пересылки для сегментных регистров

 Команда Операнды  Код Формат
  MOV  reg, segreg
 mem, segreg 
  8C    ------d-  MRM
  MOV  segreg, reg
 segreg, mem 
  8E    ------d-  MRM

Пересылка данных - команда MOV - это операция копирования. Содержимое операнда источника (source) копируется в операнд приемник (destination). При этом содержимое операнда источника не изменяется.

Сегментный регистр задается в поле ( reg ) байта (mod,reg,r/m), а в поле ( r/m ) задается либо регистр общего назначения, либо адрес оперативной памяти. Трехбитовые коды сегментных регистров приведены на странице  Сегментные регистры.

Для команды MOV с кодом 8C бит направления ( d=0 ). В этом случае в байте (mod,reg,r/m) поле ( reg ) является вторым операндом команды, то есть, источником (source), а поле ( r/m ) первым операндом, то есть, приемником (destination).

Для команды MOV с кодом 8E бит направления ( d=1 ). В этом случае в байте (mod,reg,r/m) поле ( reg ) является первым операндом команды, то есть, приемником (destination), а поле ( r/m ) вторым операндом, то есть, источником (source).

Команды засылки в стек для сегментных регистров

Смотрите страницу  Команды работы со стеком.




Основные страницы справочника

Справочник по командам процессоров x86
 
Все команды по алфавиту (кратко)
Все команды по алфавиту (подробно)
Первый байт кода операций
Второй байт кода операций
 


Главная Загрузка Инструкция Команды x86 Карта сайта


 
Copyright (C) FE23 Looch Disasm, 2011
File          - refe30.htm
File created  - 06 Jun 2011
Last modified - 11 Jun 2011
Hosted by uCoz