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

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

 

Формат кодирования MMX-команд (кроме команды EMMS) идентичен базовому формату команды процессора. Некоторые оличия связаны с кодированием полей reg и r/m байта ModR/M.

Когда MMX-команды используют в качестве операндов MMX-регистры, то поле reg байта ModR/M интерпретируется следующим образом:

  • 000 – MM0;
  • 001 – MM1;
  • 111 – MM7.

Если же в операндах команды присутствует регистр общего назначения, то он кодируется в поле r/m байта ModR/M следующим образом:

  • 000 – EAX;
  • 001 – ECX;
  • 010 – EDX;
  • 011 – EBX;
  • 100 – ESP;
  • 101 – EBP;
  • 110 – ESI;
  • 111 – EDI.

Если в качестве операндов команды выступают упакованные данные, специальное поле "гранулярность" (gg) определяется в битах 0 и 1 второго байта кода операции. Значения этого поля интерпретируются следующим образом:

  • 00 – упакованные байты;
  • 01 – упакованные слова;
  • 10 – упакованные двойные слова;
  • 11 – учетверенное слово.