CPU
inb(), outb()などの命令が連続しているとき入出力命令が実行できないことがあります。これはCPUとバス間のデータ転送が速過ぎて処理が実行できない事が原因です。これを解決するために短い遅延を入れることによって解決ができます。短い遅延を入れるにはポ…
このマクロはLinuxカーネルやXenなどのたくさんのプログラムに使用されている。このマクロの特徴は、.alignのディレクティブを使用し、次の命令を4バイト境界のメモリに配置するようにnop命令を挿入する。 次のようなコードでベンチマークを行ってみるとパフ…
x86アーキテクチャではCPUの情報を読み取るにはCPUID命令を使用します。 この命令はeaxレジスタに値をセット後、CPUID命令を実行すると、eax, ebx, edx, ecxレジスタに出力結果がセットされます。 最新のIntelプロセッサでは入力のeaxレジスタには0x00から0x…