タグ

2011年4月14日のブックマーク (1件)

  • 64ビットCPU(AMD64+EM64T)でアセンブラ

    【カーネルモードへ移行する方法】 WindowsNT/2000 int 2E(割込みゲート) WindowsXP/2003(x86版) sysenter WindowsXP/2003(x64版) syscall Windows95/98/Me call(コールゲート) int 2E(割込みゲート)とcall(コールゲート)は32ビット世代の最初のCPUである386から利用可能な方法です。(正確にはプロテクトモードが導入された286(16ビットCPU)からですが。) これに対し、sysenterはインテルがPentiumIIで導入した命令、 syscallはAMDが(たしか)K6で導入した命令です。 なおsyscallはEM64Tでも利用可能です。 速度比較 これらの方法で速度にどの程度の差があるのかをテストしてみます。 以下のプログラムを使います。 【syscall.c】 // カーネ

    kuro_m88
    kuro_m88 2011/04/14
    システムコール、カーネルモードへの移行方法