一方、高級言語で書かれたプログラムでもよく工夫すれば、アセンブリ言語と同じくらい高速にすることはできます。もちろん、インラインアセンブラなどを使わずに、高級言語のメリットを保ったままでです。しかし、アセンブリ言語の速さ以上になることはまれですし、サイズで下回ることはまずありません。また、コーディングの際に、その高級言語の仕様、対象CPUでの実装、場合によっては機器の構成についての十分な知識を必要とします。
抽象化と高速化を簡単に両立させることはできません。あなたならどちらを選びますか。
PATの機能を持つプロセッサでは、PATが常に有効になっているが、リセット時には従来と同じ動作をするように設定されている。
PATビットを持たない、通常のページ・ディレクトリ・エントリやCR3の指す、ページ・テーブル自身、ページ・ディレクトリ自身などのメモリ・タイプには、PCDビットとPWTビットが通常通り適用される。
AMD64との違いは次の通りである。
IntelがEM64TをIntel 64に名称変更したため、x64で総称することに違和感はなくなった。
Size Clocks Clocks Unit Clocks Unit Opcode Operands Bytes Pentium Pentium Pro Pentium 4 NOP 1 1 UV 0.5 0.5 MOV r,r 2 1 UV 0.5 0.5 MOV r,m 2+EA 1 UV MOV m,r 2+EA 1 UV MOV r,i 1+I 1 UV MOV m,i 2+EA+I 1 UV MOV acc,m 3/5 1 UV MOV m,acc 3/5 1 UV#a MOV r,s 2 1 MOV m,s 2+EA 1 MOV s,r 2 2 MOV s,m 2+EA 3 XCHG (E)AX,r 1 2 XCHG r,r 2 3 XCHG m,r 2+EA 3#b XLAT 1 4 PUSH r 1 1 UV 1.5 1 PUSH i 1+I 1 UV POP r 1 1 UV 1.5 1 PUSH m 2+EA 2 POP m 2+EA 3 PUSH s 1/2 1 POP s 1/2 3 PUSHF 1 4 POPF 1 6 PUSHA 1 5 POPA 1 5 LAHF 1 2 SAHF 1 2 MOVZX MOVSX r,r 3 3 MOVZX MOVSX r,m 3+EA 3 BSWAP r 2 1 7 1 LEA r,m 2+EA 1 UV LDS LES r,m 2+EA 4 LFS LGS LSS r,m 3+EA 4 ADD SUB AND OR XOR r,r 2 1 UV 0.5 0.5 ADD SUB AND OR XOR r,m 2+EA 2 UV ADD SUB AND OR XOR m,r 2+EA 3 UV ADD SUB AND OR XOR acc,i 1+I 1 UV ADD SUB AND OR XOR r,i 2+I 1 UV ADD SUB AND OR XOR m,i 2+EA+I 3 UV ADC SBB r,r 2 1 U 8 3 ADC SBB r,m 2+EA 2 U ADC SBB m,r 2+EA 3 U ADC SBB acc,i 1+I 1 U ADC SBB r,i 2+I 1 U 6 2 ADC SBB m,i 2+EA+I 3 U CMP r,r 2 1 UV 0.5 0.5 CMP r,m 2+EA 2 UV CMP m,r 2+EA 2 UV CMP acc,i 1+I 1 UV CMP r,i 2+I 1 UV CMP m,i 2+EA+I 2 UV TEST r,r 2 1 UV 0.5 0.5 TEST m,r 2+EA 2 UV TEST acc,i 1+I 1 UV TEST r,i 2+I 1 TEST m,i 2+EA+I 2 INC DEC r16/32 1 1 UV INC DEC r 2 1 UV 1 0.5 INC DEC m 2+EA 3 UV NEG NOT r 2 1 0.5 0.5 NEG NOT m 2+EA 3 MUL r8 2 11 MUL r16 2 11 MUL r32 2 9 MUL m8 2+EA 11 MUL m16 2+EA 11 MUL m32 2+EA 9 IMUL r8 2 11 IMUL r16 2 11 IMUL r32 2 9 IMUL m8 2+EA 11 IMUL m16 2+EA 11 IMUL m32 2+EA 9 IMUL r16,r16 3 9 IMUL r32,r32 3 9 IMUL r16,m16 3+EA 9 IMUL r32,m32 3+EA 9 IMUL r16,r16,i 2+I 9 IMUL r32,r32,i 2+I 9 IMUL r16,m16,i 2+EA+I 9 IMUL r32,m32,i 2+EA+I 9 DIV r8 2 17 DIV r16 2 25 DIV r32 2 41 DIV m8 2+EA 17 DIV m16 2+EA 25 DIV m32 2+EA 41 IDIV r8 2 22 IDIV r16 2 30 IDIV r32 2 46 IDIV m8 2+EA 22 IDIV m16 2+EA 30 IDIV m32 2+EA 46 AAA AAS 1 3 AAM 2 10 AAD 2 18 DAA DAS 1 3 CBW CWDE 1 3 CWD CDQ 1 2 ROL ROR r,1 2 1 U 4 1 ROL ROR m,1 2+EA 3 U ROL ROR r,i 3 1 4 1 ROL ROR m,i 3+EA 3 ROL ROR r,CL 2 4 ROL ROR m,CL 2+EA 5 RCL RCR r,1 2 1 U 4 1 RCL RCR m,1 2+EA 3 U RCL RCR r,i 3 8 RCL RCR m,i 3+EA 10 RCL RCR r,CL 2 7 RCL RCR m,CL 2+EA 9 SHL SHR SAL SAR r,1 2 1 U 4 1 SHL SHR SAL SAR m,1 2+EA 3 U SHL SHR SAL SAR r,i 3 1 U 4 1 SHL SHR SAL SAR m,i 3+EA 3 U SHL SHR SAL SAR r,CL 2 4 SHL SHR SAL SAR m,CL 2+EA 5 SHLD SHRD r,r,i 4 4 SHLD SHRD m,r,i 4+EA 5 SHLD SHRD r,r,CL 3 4 SHLD SHRD m,r,CL 3+EA 5 BT r,r 3 4 BT m,r 3+EA 9 BT r,i 4 4 BT m,i 4+EA 4 BTR BTS BTC r,r 3 7 BTR BTS BTC m,r 3+EA 14 BTR BTS BTC r,i 4 7 BTR BTS BTC m,i 4+EA 8 SETcc r 3 1 5 1.5 SETcc m 3+EA 2 Jcc short/near 2/4/6 1 V JMP short/near 2/3/5 1 V JMP far 5/7 3 JMP r 2 2 JMP m 2+EA 2 JMP m(far) 2+EA 4 CALL near 3/5 1 V CALL far 5/7 4 CALL r 2 2 CALL m 2+EA 2 CALL m(far) 2+EA 5 RETN 1 2 RETN i16 3 3 RETF 1 4 RETF i16 3 5 JCXZ JECXZ short 2 6/5 LOOP short 2 5/6 LOOPZ short 2 7/8 LOOPNZ short 2 7/8 BOUND r,m 2+EA 8 ENTER i16,0 4 11 ENTER i16,1 4 17 ENTER i16,i8 4 15+2n LEAVE 1 3 CLC STC CMC CLD STD 1 2 CLI 1 6 STI 1 7 LODS 1 2 REP LODS 2 7+3n STOS 1 3 REP STOS 2 10+n/7 MOVS 1 4 REP MOVS 2 12+n/6 SCAS 1 4 REP(N)E SCAS 2 9+4n/7 CMPS 1 5 REP(N)E CMPS 2 8+4n/7