OSを作ってみよう day007

2013-12-01

OSを作ってみよう day007

さて、ついに「OS自作入門」の1日目最後の課題。 アセンブラとはいえ、可読性も高くなっているnasファイルのコンパイル。 昨日のnasmノウハウを使って余裕のクリアかと思ったら・・・

1
2
$ nasm -f bin -o myos.img helloos.nas
helloos.nas:41: error: invalid operand type

ヌーン、どうやら筆者の方が作られているnaskというアセンブラのコンパイラーじゃないと理解できない文法があるっぽい。   問題の箇所は、0埋めしている箇所なので、勘で修正してみた。

1
2
3
4
5
6
7
8
9
$ diff projects/01_day/helloos2/helloos.nas ./helloos.nas | nkf -w
37c37
<               DB              "hello, world"
---
>               DB              "hello, myos"
41c41
<               RESB    0x1fe-$                 ; 0x001feまでを0x00で埋める命令
---
>               RESB    379                     ; 0x001feまでを0x00で埋める命令

何をやったかというと、hello, worldをhello, myosに置き換えたことと、範囲指定のRESBをバイト指定に変えたことの2つ。 1つ目の変更は、特に意味ないですw   修正を加えたプログラムは、warning出しつつもコンパイルに成功し、OSも見事起動成功!! IMAG1092 これにて1日目のおさらいは無事終了。Macでもイケるじゃないか!m9っ`Д´) ビシッ!!