70006¥

IT & DIARY 自己満ブログ

勉強)汎用CPU Register

EAX register (accumulator register) : 数学的な演算を行うとき使うか関数のretrun値を伝達するために使われる。+, -, x, / , > などの演算は大体このregisterを使う。特に X, / などの演算はの場合EAX registerでしか使えない。関数のreturn値はEAX registerに保存されるからEAX registerを確認すると呼び出した関数が成功したか失敗したかがわかるし返却した値が何かをわかる。

 

EDX register (data register) : EAX registerの拡張概念として使われる。掛け算、割算など複雑な演算のために追加でデータを保存するとき使われてる。大体EAX registerと一緒に使う。

 

ECX register (count register) : 繰り返される演算に使われる。文字列を保存したり、カウントをする作業をする。大事なことは値を増やしながら数えるのではなく減らしながら数えるという点である。

*1

 

ESI register (source index) : データを読むために使われる。

 

EDI register (destination index) : データを書くために使われる。

 

ESP register (stack pointer) : 関数を呼び出すとき関数に伝われるparameterがスタックにpushされてその次にはreturnのアドレスがpushされる。

 

EBP register : 呼び出されたスタックの一番下の位置を示すときに使われる。

 

EIP register : 現在実行中の命令の住所を示す。

*1:アセンブリ言語ではカウントするときいつも減らしながらカウントされる