logo
Shpory_tekhnologii

34 Система команд процессора i32. Машинная обработка. Байт способа адресации.

Каждая команда состоит из нескольких полей (до 6).

1.Префикс. – может содержать от 0 до 4 однобайтных префиксов. Это необязательная часть инструкции, позволяет изменить некоторые особенности ее выполнения.

2.Код операции. – действие команды, которое должен выполнить процессор (содержит или 1 или 2 байта).

3. Mod R/M. – байт способа адресации, показывает способы адресации.

7

6

5

4

3

2

1

0

mod

r/o

r/m

mod – режим адресации

R/O – указывает регистр или является продолжением кода команды.

R/M – указывает регистр или режим адресации.

Mod 00 – используется адресация без смещения; 01 – с 8-ми битными смещениями; 10 – с 8-ми битными или с 16-, либо с 32-битными смещениями; 11. R/M имеет различия между 16- и 32-битной адресацией.

16

32

000

[bx+si]

[eax]

001

[bx+di]

[ecx]

010

[bp+si]

[edx]

011

[bp+di]

[ebx]

100

[si]

sib

101

[di]

[ebp]

110

[bp]

[esi]

111

[bx]

[edi]

4. Поле SIB. – занимает 1 байт, используется для 32-битной адресации.

7

6

5

4

3

2

1

0

S

I

B

S – коэф. масштабирования; I – индексный регистр; B – регистр баз.

5.Смещение. – число, которое масштабируется и добавляется в регистр памяти. Может содержать 0,1,2,4 байта.

6.Непосредственный операнд. (0,1,2,4 байта).