- •Атрибуты размеров операнда и адреса, а также формат команды в процессорах семейства х86
- •1. Атрибуты размеров операнда и адреса.
- •2. Формат и кодирование команды.
- •Микропроцессоров семейства x86
- •I. Команды пересылок данных
- •II. Команды обработки данных
- •2. Команды логических операций
- •3. Команды сдвиговых операций
- •Команды битовых операций
- •IV. Команды операций со стеком
- •V. Команды управления программой
- •VI. Команды управления процессором
- •VII. Команды, используемые в системном программном обеспечении.
VI. Команды управления процессором
КОП |
Команда |
Действие команды |
Комментарии |
90 |
NOP |
IP(EIP) = IP(EIP) + 1 |
|
F4 |
HLT |
Останов процессора |
Выход только по RESET или при запросе на прерывание |
9B |
WAIT |
Режим ожидания особого случая |
|
0F AA |
RSM |
Выход из режима SMM |
|
F0 |
LOCK |
Генерирует внешний сигнал блокировки LOCK# |
|
VII. Команды, используемые в системном программном обеспечении.
КОП |
Команда |
Действие команды |
Комментарии |
Загрузка и сохранение дескрипторных регистров задачи и MSW
|
|||
0F 00 /0 |
SLDT r/m16 |
LDTR r/m16 |
Флаги не модифицируются |
0F 00 /2 |
LLDT r/m16 |
r/m16 LDTR |
|
0F 01 /0 |
SGDT m |
GDTR m |
|
0F 01 /2 |
LGDT m16&32 |
m16:24(32) GDTR |
|
0F 01 /1 |
SIDT m |
IDTR m |
|
0F 01 /3 |
LIDT m16&32 |
m16:24(32) IDTR |
|
0F 01 /4 |
SMSW r/m16 |
MSW r/m16 |
|
0F 01 /6 |
LMSW r/m16 |
r/m16 MSW |
|
0F 00 /1 |
STR r/m16 |
TR r/m16 |
|
0F 00 /3 |
LTR r/m16 |
r/m16 TR |
|
Загрузка предела сегмента и байта прав доступа
|
|||
0F 03 /r |
LSL r16(32),r/m16(32) |
Предел сегмента из дескриптора по селектору r/m16(32) r16(32) |
1ZF если дес- криптор доступен 0ZF если дес- криптор недоступен или неверного типа (х-тетрада не определена)
|
0F 02 /r |
LAR r16,r/m16 |
r/m16 r16(с маской FF00) |
|
0F 02 /r |
LAR r32,r/m32 |
r/m32 r32(с маской 00FxFF00) |
|
Сброс бита переключения задач
|
|||
0F 06 |
CLTS |
0 TS |
Сброс бита TS, в регистре CR0 |
Загрузка и сохранение специальных регистров управления - СRi, отладки - DRi и тестирования – Tri
|
|||
0F 20 /r |
MOV r32,CRi |
CRi r32 |
i = 0,2,3 |
0F 22 /r |
MOV CRi,r32 |
r32 CRi |
i = 0,2,3 |
0F 21 /r |
MOV r32,DRi |
DRi r32 |
i = 0,1,2,3,4,5,6,7 |
0F 23 /r |
MOV DRi,r32 |
r32 DRi |
i = 0,1,2,3,4,5,6,7 |
0F 24 /r |
MOV r32,TRi |
TRi r32 |
i = 3,4,5,6,7 |
0F 26 /r |
MOV TRi,r32 |
r32 TRi |
i = 3,4,5,6,7 |
Проверка доступности сегмента с текущего уровня привилегий
|
|||
0F 00 /4 |
VERR r/m16 |
1 ZF при доступности по чтению |
В r/m16 помещается селектор кон- тролируемого сегмента. Модифицируется только ZF. |
0F 00 /5 |
VERW r/m16 |
1 ZF при доступности по записи |
|
Контроль запрашиваемого уровня привилегий |
|||
63 /r |
APPL r/m16,r16 |
Если RPL r/m16<RPLr16 то ZF=1 и RPL r/m16 = RPL r16 иначе ZF=0 |
|
Операции с КЭШ- памятью |
|||
0F 08 |
INVD |
Очистка КЭШ L1 и обратная запись КЭШ L2 |
|
0F 09 |
WBINVD |
Очистка КЭШ L1 и обратная запись КЭШ L2, затем очистка КЭШ L2 |
|
0F 07 |
INVLPG m |
Проверка TLB и аннулирование его элементов |
|
