Список целочисленных инструкций

<!--StartFragment -->
Пояснения:
Операнды: r - регистр, m - память, i - непосредственное значение,
sr - сегментный регистр, m32 - 32 битный операнд памяти, и т.д.

Такты:
Цифры указывают минимальные значения. Промахи кеша, рассогласование и
исключения могут увеличить количество тактов.

Спариваемость:
u - спаривается только в U-трубе, v - только в V-трубе, uv - спариваются в
любой трубе, np - не спаривается вообще.

Опкод                  Операнды            Число тактов        Спариваемость
----------------------------------------------------------------------------
NOP                                        1                   uv
MOV                    r/m, r/m/i          1                   uv
MOV                    r/m, sr             1                   np
MOV                    sr,  r/m            >= 2 б)             np
XCHG                   (E)AX, r            2                   np
XCHG                   r  ,   r            3                   np
XCHG                   r  ,   m            >20                 np
XLAT                                       4                   np
PUSH                   r/i                 1                   uv
POP                    r                   1                   uv
PUSH                   m                   2                   np
POP                    m                   3                   np
PUSH                   sr                  1 б)                np
POP                    sr                  >= 3 б)             np
PUSHF                                      4                   np
POPF                                       6                   np
PUSHA POPA                                 5                   np
LAHF SAHF                                  2                   np
MOVSX MOVZX            r, r/m              3 а)                np
LEA                    r/m                 1                   uv
LDS LES LFS LGS LSS    m                   4 в)                np
ADD SUB AND OR XOR     r  , r/i            1                   uv
ADD SUB AND OR XOR     r  , m              2                   uv
ADD SUB AND OR XOR     m  , r/i            3                   uv
CMP                    r  , r/i            1                   uv
CMP                    m  , r/i            2                   uv
TEST                   r  , r              1                   uv
TEST                   m  , r              2                   uv
TEST                   r  , i              1                   е)
TEST                   m  , i              2                   np
ADC SBB                r/m, r/m/i          1/3                 u
INC DEC                r                   1                   uv
INC DEC                m                   3                   uv
NEG NOT                r/m                 1/3                 np
MUL IMUL               r8/r16/m8/m16      11                   np
MUL IMUL               all other versions  9 г)                np
DIV                    r8/r16/r32          17/25/41            np
IDIV                   r8/r16/r32          22/30/46            np
CBW CWDE                                   3                   np
CWD CDQ                                    2                   np
SHR SHL SAR SAL        r  , i              1                   u
SHR SHL SAR SAL        m  , i              3                   u
SHR SHL SAR SAL        r/m, CL             4/5                 np
ROR ROL RCR RCL        r/m, 1              1/3                 u
ROR ROL                r/m, i(><1)         1/3                 np
ROR ROL                r/m, CL             4/5                 np
RCR RCL                r/m, i(><1)         8/10                np
RCR RCL                r/m, CL             7/9                 np
SHLD SHRD              r, i/CL             4 а)                np
SHLD SHRD              m, i/CL             5 а)                np
BT                     r, r/i              4 а)                np
BT                     m, i                4 а)                np
BT                     m, r                9 а)                np
BTR BTS BTC            r, r/i              7 а)                np
BTR BTS BTC            m, i                8 а)                np
BTR BTS BTC            m, r               14 а)                np
BSF BSR                r  , r/m            7-73 а)             np
SETcc                  r/m                 1/2 а)              np
JMP CALL               short/near          1                   v
JMP CALL               far                 >= 3                np
conditional jump       short/near          1/4/5 д)            v
CALL JMP               r/m                 2                   np
RETN                                       2                   np
RETN                   i                   3                   np
RETF                                       4                   np
RETF                   i                   5                   np
J(E)CXZ                short               5-8                 np
LOOP                   short               5-9                 np
BOUND                  r  , m              8                   np
CLC STC CMC CLD STD                        2                   np
CLI STI                                    6-7                 np
LODS                                       2                   np
REP LODS                                   7+3*n ж)            np
STOS                                       3                   np
REP STOS                                   10+n  ж)            np
MOVS                                       4                   np
REP MOVSB                                  12+1.8*n ж)         np
REP MOVSW                                  12+1.5*n ж)         np
REP MOVSD                                  12+n     ж)         np
SCAS                                       4                   np
REP(N)E SCAS                               9+4*n    ж)         np
CMPS                                       5                   np
REP(N)E CMPS                               8+5*n    ж)         np
BSWAP                                      1 а)                np
----------------------------------------------------------------------------

Примечания:
а) Эта инструкция имеет префикс 0FH и требует 1 дополнительный такт на
   Pentium без MMX, если не расположен за инструкцией мультицикла (см.
   раздел 13).
б) Вариант с FS и GS имеет префикс 0FH, см. примечание а.
в) Вариант с SS, FS и GS имеет префикс 0FH, см. примечание а.
г) Вариант с двумя операндами, без непосредственного значения имеет префикс
   0FH, см. примечание а.
д) См. раздел 12
е) Спаривается только, если регистр - аккумулятор, см. раздет 17.2
ж) Дополнительно один такт на декодирование префикса повторения, если префикс
   не расположен за инструкцией мультицикла (как например CLD, см. раздел 13).



Опубликовал admin
26 Мар, Пятница 2004г.



Программирование для чайников.