30日OS 1日目

windowsでやろうかと思ってましたが、12年前の本なので本の情報がとても古いので、ツールなどの情報は全く当てにならないので、結局ネットの情報探しながらやるならmacでもおなじかと思い、macでやることにしました。


今回使うツール

  • iHex(バイナリエディタ)
  • qemu(エミュレータ)
  • nasm(アセンブラ)

本日の内容

本日は、マシン語をひたすらに書き写すのがメインです


QEMU,nasmをインストール


OSのイメージをバイナリエディタで作成

これが本日のメインです、1文字ずつ見本のプログラムを写します。(面倒だったのでコピペしました。ごめんなさい、メインをすっ飛ばしました)

手動で打ち込むと丸一日かかりそうです(1440x1024Byte)


起動(Boot)

本では、フロッピーディスクに焼いて、パソコンに入れて、とやってますが、私はフロッピーディスクもそのドライブがあるパソコンも持ってないので、エミュレータを使いました。(いつかフロッピーディスクを使ってやってみたい)

なぜか知らないけど、OSが動きました!!


アセンブラ

OSは動きましたが、何が書いてあるのかよくわからないため、アセンブラで書こうという話になりました。アセンブラとは、CPUの命令と1対1になる言語です。私の思ってたアセンブラとはだいぶ異なりました。

本ではnaskという筆者作のアセンブラを使ってますが、nasmとあまり変わらないようなので、nasmを使用します。

さっきのコードの0x00で埋まってる部分をRESBに書き換えただけです。DBとは、data byte の意味で、後ろの1バイトをそのまま出力するだけのものらしいです。

とアセンブルする事で、先ほどとイメージファイルが出来上がります。


まとめ

バイナリエディターは最強らしい。

今回はこれで以上です!!ありがとうございました!



参考にさせていただいたサイト

  • https://qiita.com/pollenjp/items/a13cd764cc739a0ca9df

ありがとうございました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です