OSを作ってみよう day010

2013-12-05

OSを作ってみよう day010

IPLにエラー処理を追加したら、エラーにしかならなくなったので、原因を調査してみようと思ったが・・・ ( ゚д゚)「そもそも、アセンブラがろくに理解出来てない。」 nasmでのコンパイルに気を良くして、ちゃんと理解しないからこういうことになる。   何度も何度も読み返して、wikipediaで調べて、ググってググって、以下のように理解した内容をまとめると。

  1. アセンブラのプログラムは命令セットを使い、レジスタ(記憶回路)にデータを突っ込んだり計算したりして進んでいく。
  2. レジスタは、高級言語における変数みたいなもん。
  3. レジストには、8bit, 16bit, 32bit, 64bitがある。※OS自作入門では16bitレジスタを使っている。
  4. 命令セットは、CPUの仕様に依る。なのでintel様の仕様に従う。x86ってやつだぜ。
  5. ラベルという形で処理をある程度の単位でまとめることが出来る。関数みたいな感じね。
    うむうむ。少しずつ分かってきた。 ちなみに16bitレジスタは、以下の8+セグメントレジスタ6つである。

AX, BX, CX, DX, SP, BP, SI, DI セグメントレジスタ ES, CS, SS, DS, FS, GS

なんか、それぞれ名前とか意味とか付いてるんだけど、要するに記憶出来るのは16bitの情報ってことだと理解。とりあえず暗記しよう。 役割に応じて、向き不向きがあるらしいんだけど、ひとまずそこはざっくりと理解しておく。 つぎに命令セット。ググってみたところ、素晴らしいページをハケーン。 アセンブリ言語 後は、iplのコードを一行ずつ読んでいくだけだ! 今日はここまで。