はりぼて日記
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が セットされると、そういう意味かぁ。なるほどなるほど。 |
||
(1)  |
PopnupBlog V3 Denali created by Bluemoon inc. |