ホントに30日でできるのか、OS自作入門・4日目「C言語と画面表示の練習」


さて4日目です。なんとか三日坊主にはならなくてすみました。1日1時間くらいの勉強時間ですけどね・・・。

ここからは比較的慣れているC言語での実装が多くなるので、自分にとってはわかりやすいです。また、グラフィックも出てくるようになって見た目にも変化がわかりやすくなってきました。
が、やはりOSということでアセンブラは避けては通れません。というか筆者がアセンブラ好きすぎて、めっちゃアセンブラ寄りのポジショントークです笑。「C言語にはコレコレがない!」とか。「ポインタがわからないならアセンブラに戻るべし!」という感じで、自分は逆にわかりにくい・・・。

C言語ならなんとか分かると言いましたが、恥ずかしながらコラムで言及されていたC言語でp[i]がi[p]で置き換えられるって知りませんでした・・・。「えー、うそだぁ」と思ってhelloworld組んだら・・・動くじゃん。く、こんなことも知らなかったとは・・。

  #include <stdio.h>
  
  int main(void)
  {
    char *p = "hello";
  
    printf("%c \n", p[1]);
    printf("%c \n", 1[p]);
    
    return 0;
  }

   → $ gcc -o hello test.c 
     $ ./hello 
     e 
     e 

最後にあのOSっぽいものができました笑。ただ四角形を書いただけなので動きませんが、それっぽい感じです。

今日も相変わらずC言語から呼び出すアセンブラの関数部分とかEFLAGSあたりの説明とかはサッパリわかりませんでしたが、とりあえずC言語の部分は分かったので、ヨシとします。