はりぼて日記
2007 | 01 | 02 | 03 | 04 | 05 | 07 | 08 | 10
2006 | 11 | 12
12月 21 (木曜日) 2006
00:21
四日目
 
四日目〜。

・・・その前に。先の三日目で疑問に思ったこと。(この本のことだからきっと後で出てくるのかもしれないので、この段階では無理に調べない。でも忘れちゃいそうなのでメモ。)

?? 16bitから32bitにスイッチされた場合、メモリの内容はそのままなのか ??

たぶんそうだろうとは思うけど、なにか変化や保障されない部分はないのか??

・・・と、こんなこと。


さて、四日目だけど、一番最初ですこーし躓いた。69P〜70Pの、_write_mem8に関する部分。

 一番目のもの: [ESP+4]
 二番目のもの: [ESP+8]
 三番目のもの: [ESP+12]
 四番目のもの: [ESP+16]

??? あれ?これどういう意味かな???

あー。なるほど。そうかそうか!
つまり、naskfuncみたいに「アセンブラでC言語から使える関数を作った場合」に、関数のパラメータの値が順番に格納されるわけね。パターンとして。

たとえば、私が
  hideyosi(int one,int two int three);
こういう関数を考えてC言語側で定義したとする。パラメータは三つ。で、この関数を実際に使おうとして、Cのプログラムから
  sss = hideyosi( 1 , 2 , 3);
と、こんなふうにコールしたとする。その場合に、

 [ESP+4]、つまり(ESPの値+4)番地のメモリに、1が
 [ESP+8]、(ESPの値+8)番地のメモリに、2が
 [ESP+12]、(ESPの値+12)番地のメモリに、3が

セットされると、そういう意味かぁ。なるほどなるほど。






 
30日を過ぎたBlogにはコメントできません。
(1) 

PopnupBlog V3 Denali created by Bluemoon inc.