Коды всех программ являются подмножеством общего формата команд, отображенного на Рисунке 10.1. Код команд содержит один или два основных байта кода операций, может содержать описатель адреса операнда в байте "mod r/m" и "индекс масштабирования", при необходимости - смещение или поле непосредственного операнда.
В основных байтах кода операции можно выделить отдельные поля, содержимое которых определяет принадлежность команды к тому или иному классу. Эти поля содержат информацию о направлении операции и размере смещения, коды регистров или указание на необходимость распространения знака.
Почти все команды, которые используют операнды, расположенные в памяти, содержат байт режима адресации, следующий за байтом (байтами) кода операции. Этот байт ("mod r/m") указывает, какой режим адресации операндов используется в данной команде. Байт "mod r/m" может содержать указание на использование еще одного адресного байта, следующего непосредственно за ним. Второй байт называется байтом "масштаба-индекса-базы" и содержит дополнительную информацию о режиме адресации.
Для некоторых режимов адресации используется смещение, следующее сразу за байтом "mod r/m" или байтом масштабированного индекса. Если смещение присутствует в коде команды, оно может иметь размер 8, 16 или 32 бита. Если команда использует непосредственный операнд, он помещается после байтов смещения. Непосредственный операнд, если он присутствует, всегда является последним полем кода команды.
На Рисунке 10.1 показаны некоторые поля, которые могут появляться в команде, например mod и r/m. Однако, не все возможные поля приведены на этом рисунке. В некоторых командах используются другие поля, иногда непосредственно внутри кода операции. В Таблице E.4 приводится полный список полей, используемых для кодирования набора команд микропроцессора i486. За Таблицей E.4 следуют таблицы, содержащие подробные сведения о каждом поле.