EIP(Extended Instruction Pointer)とは?

最終更新日 2019年10月11日

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)は通常のプログラムカウンタと比べて何が違うのかは、どの記事にも書かれておらず不明です。


キャンペーン情報
マウスコンピューター
冬のボーナスセール icon
期間限定で大幅値引き!最大60,000円OFF!!(一部モデルのみ)
(11月20日迄)
DELL
・PRE-BLACK FRIDAYセール
Office付き秋の感謝モデルほか、デスクトップ製品がクーポンで最大18%Off
(キャンペーン実施中)
ドスパラ
・最大20%還元 冬のボーナスセール
特価パソコンをはじめ、お買得なパソコンパーツ、周辺機器を多数ご用意
(11月28日迄)
パソコン工房
・Windows 10乗り換え応援セール×総額3億円分早い者勝ち!
BTOパソコンやPCパーツ・周辺機器などがお得な価格
(11月26日迄)