FAG>I was reading an Intel tutorial about optimization, and they really used
FAG>lot the number of micro-ops ecah instruction produces...
FAG>I'd need a table that contained the number of micro-ops each instruction
FAG>produce....
FAG>Has any of you something like this? (If so, post it here or e-mail me...)
I can do this, simplifying from my tasm qref:
I will not include the 186 and up instructions, or protected-mode timings.
============================================
Instruction Clocks
Mnemonic 486 386 286 8086
--------------------------------------------
AAA 3 4 3 8
AAD 14 19 14 60
AAM 15 17 16 83
AAS 3 4 3 8
ADC mem, imm 3 7 7 17+EA
ADC mem, reg 3 7 7 16+EA
ADC reg, imm 1 2 3 4
ADC reg, mem 2 6 7 9+EA
ADC reg, reg 1 2 2 3
ADD mem, imm 3 7 7 17+EA
ADD mem, reg 3 7 7 16+EA
ADD reg, imm 1 2 3 4
ADD reg, mem 2 6 7 9+EA
ADD reg, reg 1 2 2 3
AND mem, imm 3 7 7 17+EA
AND mem, reg 3 7 7 16+EA
AND reg, imm 1 2 3 4
AND reg, mem 2 6 7 9+EA
AND reg, reg 1 2 2 3
CALL far_ptr 18 17+m 13 28
CALL mem16 5 10+m 11 21+EA
CALL mem_far 17 20+m 16 37+EA
CALL reg16 5 7+m 7 16
CALL rel16 3 7+m 7 19
CBW 3 3 2 2
CLC 2 2 2 2
CLD 2 2 2 2
CLI 5 3 3 2
CMC 2 2 2 2
CMP mem, imm 2 5 7 10+EA
CMP mem, reg 2 5 7 9+EA
CMP reg, imm 1 2 3 4
CMP reg, mem 2 6 6 9+EA
CMP reg, reg 1 2 2 3
CMPS 8 10 8 22
CWD 3 2 2 5
DAA 2 4 3 4
DAS 2 4 3 4
DEC mem 3 6 7 15+EA
DEC reg 1 2 2 3
DIV mem16 24 25 25 (150..168)+EA
DIV mem8 16 17 17 (86..96)+EA
DIV reg16 24 22 22 (144..162)
DIV reg8 16 14 14 (80..90)
HLT 4 5 2 2
IDIV mem16 28 27 28 (171..190)+EA
IDIV mem8 20 19 20 (107..118)+EA
IDIV reg16 27 27 25 (165..184)
IDIV reg8 19 19 17 (101..112)
IMUL mem16 (13..26)(12..25) 24 (134..160)+EA
IMUL mem8 (13..18)(12..17) 16 (86..104)+EA
IMUL reg16 (13..26) (9..22) 21 (128..154)
IMUL reg8 (13..18) (9..14) 13 (80..98)
IN acc, imm 14 12 5 10
IN acc, DX 14 13 5 8
INC mem 3 6 7 15+EA
INC reg 1 2 2 3
INT3 26 33 23 52
INT imm8 30 37 23 51
INTO - OF SET 28 35 24 53
- OF CLEAR 3 3 3 4
IRET 15 22 17 32
J(cond) - TAKEN 3 7+m 7 16
- not taken 1 3 3 4
JMP far_ptr 17 12+m 11 15
JMP mem_far 13 43+m 15 24+EA
JMP mem16 5 10+m 11 18+EA
JMP reg16 5 7+m 7 11
JMP rel 3 7+m 7 15
LAHF 3 2 2 4
LEA reg, mem 1 2 3 2+EA
LDS reg, mem 6 7 7 16+EA
LES reg, mem 6 7 7 16+EA
LOCK prefix 1 0 0 2
LODS 5 5 5 12
LOOP cx0 2 11+m 8 17
cx=0 6 11+m 4 5
LOOPZ cx0 9 11+m 8 18
cx=0 6 11+m 4 6
LOOPNZ cx0 9 11+m 8 19
cx=0 6 11+m 4 5
MOV acc, mem 1 4 5 10
MOV mem, acc 1 4 3 10
MOV mem, imm 1 2 3 10+EA
MOV mem, reg 1 2 3 9+EA
MOV mem, sreg 3 2 3 9+EA
MOV reg, imm 1 2 2 4
MOV reg, mem 1 4 5 8+EA
MOV reg, reg 1 2 2 2
MOV reg, sreg 3 2 2 2
MOV sreg, mem 9 5 5 8+EA
MOV sreg, reg 3 2 2 2
MOVS 7 7 5 18
MUL mem16 (13..26)(12..25) 24 (124..139)+EA
MUL mem8 (13..18)(12..17) 16 (76..83)+EA
MUL reg16 (13..26) (9..22) 21 (118..123)
MUL reg8 (13..18) (9..14) 13 (70..77)
NEG mem 3 6 7 16+EA
NEG reg 1 2 2 3
NOP 1 3 3 3
NOT mem 3 6 7 16+EA
NOT reg 1 2 2 3
OR mem, imm 3 7 7 17+EA
OR mem, reg 3 7 7 16+EA
OR reg, imm 1 2 3 4
OR reg, mem 2 6 7 9+EA
OR reg, reg 1 2 2 3
OUT imm, acc 16 10 3 10
OUT DX, acc 16 11 3 8
POP mem 6 5 5 17+EA
POP reg 4 4 5 8
POP sreg 3 7 5 8
PUSH mem 4 5 5 16+EA
PUSH reg 1 2 3 11
PUSH sreg 3 2 3 10
RCL mem, 1 4 10 7 15+EA
RCL mem, CL (9..31) 10 8 20+4(CL)+EA
RCL reg, 1 3 9 2 2
RCL reg, CL (8..30) 9 5 8+4(CL)
RCR mem, 1 4 10 7 15+EA
RCR mem, CL (9..31) 10 8 20+4(CL)+EA
RCR reg, 1 3 9 2 2
RCR reg, CL (8..30) 9 5 8+4(CL)
REP MOVS 12+3(CX) 5+4(CX) 5+4(CX) 9+17(CX)
REP STOS 7+4(CX) 5+5(CX) 4+3(CX) 9+10(CX)
REP[N]E CMPS 7+7(CX) 5+9n 5+9n 9+22n
REP[N]E SCAS 7+5(CX) 5+8n 5+8n 9+15n
RETN 5 10+m 11 16
RETN imm 5 10+m 11 20
RETF 13 18+m 15 26
>>> Continued to next message
* OLX 2.2 * BlueWave? Wet behind the ears, eh?
---------------
* Origin: Next time, Dial The Wrong Number! (209) 943-1880 (1:208/205)
|