OS自作入門 3日目

○3日目
 32ビットモード突入とC言語導入
 ▼アセンブラ
  JC jump if carry キャリーフラグが1だったらジャンプする。
  JNC jump if not carry キャリーフラグが0だったらジャンプする。
  JAE jump if above or equl 大きいか、等しければジャンプする。
  JBE jump if below or equal 小さいか、等しければジャンプする。
  JB jump if belw 小さければジャンプする。
  
  ※ジャンプした命令は明示的にアドレスを指定しないと戻らない。
   →関数呼び出しとは感覚の違い。
 
 ▼キャリーフラグ
  1ビットしか記憶できないレジスタ

 ▼ディスクイメージの作成手順
  ・プログラムをアセンブラコードで作成(エディタ)
  ・アセンブル(アセンブラ)
  ・ディスクイメージ作成(ディスクイメージ作成ツール)

  ※ここでいうディスクイメージとはフロッピーディスク
   →実際にフロッピーディスクにプログラムを書き込んだときのイメージ。
  
 ▼IPLからOS(?)を起動
  →IPLは512バイト
   終了コードは0x55AA
  
 ▼32ビットモード
  →BIOS関数が使用できない(16ビット関数なので)

 ▼アセンブラ関数の作成手順
  ・オブジェクトファイルモードと、機械語のモードを指定する。
  ・ソースファイル名を記載する。
  ・GLOBAL命令で関数名を登録する。→関数名の先頭に「_」をつける。
  ・[SECTION .text]を指定してから関数を追記する。
    
 ※完了後環境をLinuxへ移行予定→ツールがないため断念

 C言語を使用するため、ファイル数と手順が一気に増えた。
 追記分の詳細説明はなしとのこと。
 ごちゃごちゃ考えても進まないので、とりあえず先に進める。