Машинные инструкции
Описанию каждой инструкции предшествует сводка возможных форматов этой инструкции и соответствующих кодов команд. При этом используются следующие обозначения:
– NN+rb – код операции состоит из фиксированного кода NN (шестнадцатеричного), к которому прибавлен номер 8-разрядного регистра общего назначения;
– NN+rw – код операции состоит из фиксированного кода NN (шестнадцатеричного), к которому прибавлен номер 16-разрядного регистра общего назначения;
– /r – байт ModRegR/M, в котором поле Reg определяет номер регистра;
– /rцифра – байт ModRegR/M, в котором поле Reg имеет значение, указанное цифрой (например, /r2 означает, что поле Reg содержит двоичную комбинацию 010);
– cb – 8-разрядное отклонение;
– cw – 16-разрядное отклонение;
– cd – 32-разрядный абсолютный адрес дальнего перехода;
– ib – 8-разрядный непосредственный операнд;
– iw – 16-разрядный непосредственный операнд;
– imm8 – 8-разрядное непосредственное значение (константа);
– imm16 – 16-разрядное непосредственное значение (константа);
– ow – 16-разрядное смещение операнда в сегменте данных;
– r/m8 – 8-разрядный регистр общего назначения или байт памяти, определяемый полями Mod и R/M байта ModRegR/M. В коде команды может присутствовать 8- или 16-разрядное отклонение;
– r/m16 – 16-разрядный регистр общего назначения или слово памяти, определяемое полями Mod и R/M байта ModRegR/M. Операнд либо является арифметико-логическим, используемым в команде обработки данных, либо 16-разрядным смещением в команде абсолютного ближнего перехода. В коде команды может присутствовать 8- или 16-разрядное смещение;
– m8 – байт данных, заданный смещением (поле ow кода команды);
– m16 – слово данных, заданное смещением (поле ow кода команды);
– m16:16 – двойное слово памяти, содержащее селектор сегмента и смещение, используемые в качестве абсолютного адреса дальнего перехода. Местоположение поля в памяти определяется полями Mod и R/M байта ModRegR/M;
– r8 – 8-разрядный регистр общего назначения, определяемый полем Reg байта ModRegR/M;
– r16 – 16-разрядный регистр общего назначения, определяемый полем Reg байта ModRegR/M;
– Sreg – сегментный регистр, определяемый полем Reg байта ModRegR/M;
– rel8 – 8-разрядный относительный адрес ближнего перехода (8-разрядное отклонение);
– rel16 – 16-разрядный относительный адрес ближнего перехода (16-разрядное отклонение);
– ptr16:16 – абсолютный адрес дальнего перехода (16-разрядные селектор сегмента и смещение).
В сводке кодов команд указываются только обязательно присутствующие компоненты. Например, в арифметико-логических операциях, где один из операндов задаётся с помощью полей Mod и R/M байта ModRegR/M, не указывается поле отклонения, которое может присутствовать или отсутствовать в зависимости от содержимого байта ModRegR/M.