Форматы команд: Формат команд FPU

Печать
Программирование - Архитектура и система команд микропроцессоров x86

 

Для команд FPU существует пять различных форматов кодирования (рис. 5.3.). Все эти форматы идентичны в одном — в старших пяти битах двухбайтного кода команды FPU всегда содержится специальное значение 11011b. По этому значению процессор распознает команды FPU (т.н. ESC-команды).

 

Форматы команд FPU

Рис. 5.3. Форматы команд FPU

 

Назначение и кодирование представленных в коде команды полей следующее.

 

MF — формат ячейки памяти:

  • 00 – 32-битное вещественное;
  • 01 – 32-битное целое;
  • 10 – 64-битное вещественное;
  • 11 – 16-битное целое.

P — извлечение из стека:

  • 0 – не извлекать из стека;
  • 1 – извлекать из стека.

d — назначение:

  • 0 – ST(0);
  • 1 – ST(i).

R — направление операции:

  • R XOR d = 0 — "Назначение" операция "Источник";
  • R XOR d = 1 — "Источник" операция "Назначение".

ST(i) — элемент регистрового стека:

  • 000 – вершина стека;
  • ...
  • 111 – восьмой элемент стека.

OPA — первая часть кода операции.

OPB — вторая часть кода операции.

 

Поля mod, r/m и SIB кодируются также, как и для базовых команд процессора (см. выше). Байт SIB и поле смещения могут присутствовать в командах, где присутствуют и определенным образом закодированы поля mod и r/m.