JXX - Jump Instructions Table


Clocks
operands 286 386 486 Size Bytes
Jx: jump 7+m 7+m 3 2
     no jump 3 3 1 2
Jx: near-label 7+m 3 4
     no jump 3 1 4
It's a good programming practice to organize code so the expected
case is executed without a jump since the actual jump takes longer to execute than falling through the test.
see JCXZ and JMP for their respective timings




JCXZ/JECXZ - Jump if Register (E)CX is Zero

Clocks
operands 286 386 486 Size Bytes
label: jump 8+m 9+m 8 2
        no jump 4 5 5 2




JMP - Unconditional Jump

Clocks
operands 286 386 486
rel8 (relative) 7+m 7+m 3
rel16 (relative) 7+m 7+m 3
rel32 (relative) 7+m 3
reg16 (near, register indirect) 7+m 7+m 5
reg32 (near, register indirect) 7+m 5
mem16 (near, mem indirect) 11+m 10+m 5
mem32 (near, mem indirect) 15+m 10+m 5
ptr16:16 (far, dword immed) 12+m 17
ptr16:16 (far, PM dword immed) 27+m 19
ptr16:16 (call gate, same priv.) 38+m 45+m 32
ptr16:16 (via TSS) 175+m TS 42+TS
ptr16:16 (via task gate) 180+m TS 43+TS
mem16:16 (far, indirect) 43+m 13
mem16:16 (far, PM indirect) 31+m 18
mem16:16 (call gate, same priv.) 41+m 49+m 31
mem16:16 (via TSS) 178+m 5+TS 41+TS
mem16:16 (via task gate) 183+m 5+TS 42+TS
ptr16:32 (far, 6 byte immed) 12+m 13
ptr16:32 (far, PM 6 byte immed) 27+m 18
ptr16:32 (call gate, same priv.) 45+m 31
ptr16:32 (via TSS) TS 42+TS
ptr16:32 (via task state) TS 43+TS
m16:32 (far, address at dword) 43+m 13
m16:32 (far, address at dword) 31+m 18
m16:32 (call gate, same priv.) 49+m 31
m16:32 (via TSS) 5+TS 41+TS
m16:32 (via task state) 5+TS 42+TS

[ TOC | Previous | NeXt | Winston's page ]