はりぼて日記
10月 10 (水曜日) 2007 | ||
13:26
|
22日目
|
|
22日目〜。
さらにOSを守る。 P446 ふーむ・・・ IN・OUT命令はアプリからは使えないと。(使えるようにすることもできなくはないよう・・・) そう考えると、ドライバなどはどう考えたらいいのかな? ドライバはアプリとすることは出来ない。(上記の理由で) ということは、ドライバはOS側ということになるのかな。 Win等の市販のOS(サードパーティーがドライバを提供するのが 当たり前になっているOS)ではどう考えているんだろう??? P449 黒川合退散〜 (笑 アプリ作成再開! P451 ・・・むむむ!?? あれれ? これけっこう重要and知らなかったかも? C言語で配列を宣言した場合、それはメモリではなくスタック内に設定される(まあスタックも、メモリっちゃあメモリだけどそこは分けて考える) っていう理解でいいのかな??? 普通の int a; とかはどうなんだろう? こっちはメモリなのかな??? P453 うーむ。おもしろいなぁ。 割り込み発生時に各レジスタの値も表示すると・・・ (今思うと、OSASKのバグ表示もこれだったのかな) P458 ・・・あれれれ? 例の6バイトのことだ。あっれーー? なんか見落としてる? ちょっと戻って整理してみよう。
・・・ふむ!! とりあえずこんな理解でいいのかな。 で!!!
・・・こんなところかな???・・・・・・ P459 ふむ・・・・このあたりから、.hrb(実行ファイル)の内部構造が 解説されてるね。 なるほどなぁ。実行ファイルって、ただ最初からベターっと プログラムが書かれているわけじゃないんだね。 また、なんのためにそういう仕組みになっているのかもこれを 読むと良くわかる。 ついでに、なぜ、先の6バイトで0x1bをコールしているのかも ここで解説されとりますね。 P463 へえぇぇ。 .textと.dataかぁ。なんかややこしいですねぇ。 (まあ紛らわしいってのはもう、しょうがないんでしょうね。) P465 へえぇぇぇ! こりゃおもしろい! PUSHとPOPって別に絶対的なことじゃないんですねぇ。 ん??? あれぇ? P466のwinhelo.cのソースでapi_openwinからの戻り値を取ってる。(int win) ここには何の数値が入る?。どこでその処理をしてる??? もしかしてCとアセンブラの連携だったっけ?。ちょっとメモを見よう・・・ えーーーっと! Cからアセンブラの関数を呼んだ場合、パラメータが左から順に、 [ESP+4]、[ESP+8]、[ESP+12]・・・と格納されると。 さらに、アセンブラ内ではEAX・ECX・EDXしか使えないと。 (P466のa_nask.nas内では使っているが、やっぱり本来は使っちゃいけないレジスタなので、EDI・ESI・EBXをスタックに退避させ、API割り込み呼び出し後にPOPして復元してから終了してるわけ) ・・・あ”こっちかぁ。 P465のconsole.cのほうかぁ。 あーーー! なんかちょっと読み飛ばしてたみたいだ! P464でちゃんと、EAXに戻り値が設定されて帰ってくるってことにしてるんじゃん!
えっと。これを踏まえて・・・ |
||
(1) 2 3 4 5 6 7 8 9 10 »  |
PopnupBlog V3 Denali created by Bluemoon inc. |