Оптимизация для pentium процессора - список целочисленных инструкций
20 СПИСОК ЦЕЛОЧИСЛЕННЫХ ИНСТРУКЦИЙ ================================== Пояснения: Операнды: 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).
