EIP(Extended Instruction Pointer)とは?

最終更新日 2023年09月07日

EIP(Extended Instruction Pointer)とは何か

x86系CPUのネイティブコードを解析する (1/3):CodeZine(コードジン) には、以下のとおり書かれています。(この記事の公開年月日は2006年7月14日)
 eipは次に実行すべきネイティブコードのアドレスを保持します。
マルチタスク――プロセススケジューリング(その1) - ITmedia エンタープライズ には、以下のとおり書かれています。(この記事の公開年月日は2004年6月8日)
プログラムカウンタレジスタ
実行中のコードがどこか(次の実行コードのアドレス)を示しているもの。Intel x86の場合は、EIP(Extended Instruction Pointer)レジスタである。プログラムカウンタと命令(インストラクション)ポインタは同じ意味。CPU機能の拡張に伴い、現在はEIPを用いている。
Part5 エラーの原因を探れ! | 日経 xTECH(クロステック) には、以下のとおり書かれています。(この記事の公開年月日は2007年1月18日)
 単純化して言えば,プログラムとは,CPUに対する機械語命令を示すバイト値が並んだものである。それを実行するために,CPU(32ビットのx86プロセサ)の内部にはEIP(Extended Instruction Pointer)というポインタ(レジスタとも言われる)がある。このポインタは,機械語命令をCPU内で実行するごとに1ずつ値を増やしていく機能を持っている(図3)。
メモリには機械語(マシン語)で書かれたプログラム(ネイティブコード、実行コード)が保持されています。

メモリではアドレス(番地)で保持するデータを管理しており、アドレス(番地)はメモリにとって住所のようなものです。

CPU はプログラムが保持されているメモリのアドレスをレジスタに保持しますが、このために使うレジスタをプログラムカウンタや命令(インストラクション)ポインタと呼びます。

ITmedia エンタープライズの記事には、Intel x86(インテルの CPU のシリーズ名)は「CPU機能の拡張に伴い、現在はEIPを用いている。」と書かれていますので、EIP(Extended Instruction Pointer)はプログラムカウンタと同様の機能を持つレジスタですが、ただのプログラムカウンタではないようです。

EIP(Extended Instruction Pointer)は通常のプログラムカウンタと比べて何が違うのかは、どの記事にも書かれておらず不明です。


キャンペーン情報(PR)
マウスコンピューター
・オータムセール
最大50,000円OFF
(10月9日迄)
DELL
・今週のおすすめ製品
対象製品が特別価格でお買い得
(キャンペーン実施中)
パソコン工房
・決算セール
セール対象BTOパソコン最大55,000円OFF
(10月1日迄)