I
Formaty niektórych rozkazów w architekturze IA-32
Podstawowy format rozkazu
Pierwszy bajt |
Drugi bajt |
Trzeci bajt SIB (opcjonalny) |
Czwarty bajt |
Piąty bajt |
Szósty bajt |
Siódmy bajt | |||||
Kod oper. |
d NA |
mod |
reg |
r/m |
SS |
index |
base |
Przesunięcie (adres) albo argument bezpośredni (liczba) |
Jeśli bit d = 1, to odbiorcą informacji jest rejestr określony przez pole reg, jeśli d = 0, to r/m.
tryb |
reg |
OOO |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
16/32 |
w = O |
AL. |
CL |
DL |
BL |
AH |
CH |
DH |
BH |
16 |
w = 1 |
AX |
CX |
DX |
BX |
SP |
BP |
SI |
Dl |
32 |
w = 1 |
EAX |
ECX |
EDX |
EBX |
ESP |
EBP |
ESI |
EDI |
Adres efektywny | ||
r/m |
tryb 16-bitowy |
tryb 32-bitowy |
000 |
BX + SI + przesuniecie |
EAX + przesunięcie |
001 |
BX + Dl + przesunięcie |
ECX + przesunięcie |
010 |
BP + SI + przesunięcie |
EDX + przesuniecie |
011 |
BP + Dl + przesuniecie |
EBX + przesunięcie |
100 |
SI + przesunięcie |
sposób oblicz, określa bajt SIB |
101 |
Dl + przesunięcie |
EBP + przesunięcie |
110 |
BP + przesunięcie |
ESI + przesunięcie |
111 |
BX + przesunięcie |
EDI + przesunięcie |
MOV
1000 10 d w
11 reg r/m
1. przesianie liczby do rejestru
1011 w reg |
liczba (L) |
liczba (..) |
liczba (..) |
liczba (H) |
2. przesianie rejestru do rejestru
1000101 w |
mod reg r/m |
Przes.(L) |
Przes. (..) |
Przes. (..) |
4. przesianie rejestru do rejestru segmentowego ('rsgm: ES-00, CS-01, SS- 10, DS- 11)
XCHG
1. zamiana zawartości rejestrów
10001110 110 rsgm reg
1000011 w 11 reg 1 reg2
»
LEA
10001101 |
mod reg r/m |
Przes.(L) |
Przes. (..) |
Przes. (..) |
Przes. (H) |
PUSH POP |
01010 reg 01011 reg |
CMP
1. porównanie zawartości rejestru i liczby
100000 s w |
11 111 reg |
liczba (L) |
liczba (..) |
liczba (..) |
liczba (H) |
w przypadku s = w =1 pole liczba jest jednobajtowe
2. porównanie zawartości rejestrów
001110 d w 11 reg1 reg2
LOOP |
11100010 |
przesunięcie | ||
JMP | ||||
11101001 |
Przes.(L) |
Przes. (..) |
Przes. (..) |
Przes. (H) |
CALL | ||||
11101000 |
Przes.(L) |
Przes. (..) |
Przes. (..) |
Przes. (H) |
INT |
11001101 |
nr wektora |
01110100 |
przesunięcie |
01110101 |
przesunięcie |
01110010 |
przesunięcie |