- •Атрибуты размеров операнда и адреса, а также формат команды в процессорах семейства х86
- •1. Атрибуты размеров операнда и адреса.
- •2. Формат и кодирование команды.
- •Микропроцессоров семейства x86
- •I. Команды пересылок данных
- •II. Команды обработки данных
- •2. Команды логических операций
- •3. Команды сдвиговых операций
- •Команды битовых операций
- •IV. Команды операций со стеком
- •V. Команды управления программой
- •VI. Команды управления процессором
- •VII. Команды, используемые в системном программном обеспечении.
I. Команды пересылок данных
КОП |
Команда |
Действие команды |
Комментарии |
88 /r 89 /r 8A /r 8B /r 8C /r 8E /r A0 A1 A2 A3 |
Обычные пересылки MOV r/m,r8 MOV r/m 16(32),r16(32) MOV r8,r/m8 MOV r16(32),r/m16(32) MOV r/m16,sr MOV sr,r/m16 MOV AL,moffs8 MOV AX(EAX),moffs16(32) MOV moffs8,AL MOV moffs16(32),AX(EAX) |
r8r/m8 r16(32)r/m16/32 r/m8r8 r/m16(32)r16(32) srr/m16 r/m16sr seg:offsetAL seg:offsetAX(EAX) ALseg:offset AX(EAX)seg:offset |
Флаги не мо-дифицируются |
B0 +rb B8 +rw(rd) C6 /0 C7 /0
E4 ib E5 ib EC ED
E6 ib E7 ib EE EF
8D /r
C5 /r C4 /r 0F B2 /r 0F B4 /r 0F B5 /r
90 +rw(rd) 86 /r 87 /r 0F C0 /r
0F C1 /r
D7
0F C8 /r |
Обычные пересылки MOV r8,imm8 MOV r16(32),imm16(32) MOV r/m8,imm8 MOV r/m16(32),imm16(32)
Ввод из порта IN AL,imm8 IN AX(EAX),imm8 IN AL,DX IN AX(EAX),DX
Вывод из порта OUT imm8,AL OUT imm8,AX(EAX) OUT DX,AL OUT DX,AX(EAX)
Загрузка эффективного адреса LEA r16(32),m
Загрузка полного указателя адреса
LDS r16(32),m16:16(32) LES r16(32),m16:16(32) LSS r16(32),m16:16(32) LFS r16(32),m16:16(32) LGS r16(32),m16:16(32)
Обмен данными XCHG AX(EAX),r16(32) XCHG r/m8,r8 XCHG r/m16(32),r16(32) XADD r/m8,r8
XADD r/m16(32),r16(32)
Табличное преобразование XLAT m8 (XLATB)
Изменение порядка байт в 32 битовых операндах. BSWAP r32 |
imm8 r8 imm 16(32) r16(32) imm 8 r/m8 imm16(32) r/m16(32)
Port imm8 AL Port imm8 AX(EAX) Port [DX] AL Port [DX] AX(EAX)
AL Port imm8 AX(EAX) Port imm8 AL Port [DX] AX(EAX) Port[DX]
EA r16(32)
m16:16(32) DS:r16(32) m16(32) ES:r16(32) m16(32) SS:r16(32) m16(32) FS:r16(32) m16(32) GS:r16(32)
r16(32) AX(EAX) r8 r/m8 r16(32) r/m16(32) r/m8 temp; temp+r8r/m8; temp r8 r/m16(32)temp; temp+r16(32) r/m16(32); tempr16(32).
DS:[BX(EBX)+AL] AL
r(3b,2b,1b,0b) r(0b,1b,2b,3b) |
Флаги не мо- дифицируются
Флаги не мо- дифицируются
Флаги не мо- дифицируются
Флаги не мо- дифицируются
Флаги не мо- дифицируются
Флаги модифи- цируются как при команде ADD. (i486)
Флаги не моди- фицируются
Флаги не моди- фицируются (i486) |
