自作エミュレータで学ぶx86アーキテクチャ 3.5

メモ:3.5 無条件分岐命令

 jmpはeipに値を入れるだけでなく、高速化のために先読みした命令を
捨てるという役割がある。

 cpuは高速化のために「パイプライン」という仕組みを持っている。

 「パイプライン」は、ある命令を実行するときにはすでに何命令も
先の命令をフェッチしたりデコードしたりしている。

 jmpでeipの値が変わるので先読みしていたものを捨てなければならない。
これを「パイプラインのフラッシュ」などと呼ぶ。