C

C++ のお勉強 テンプレート編

C

C++ のお勉強三日目。前回の「C++ のお勉強 クラス編」の続き。 三日坊主もイイトコロなので,このテンプレート編が最後のお勉強になる。 C++ は難しいもんだと思ってたけど,今回までで,もう C++ の概要を掴むことが出来た…気がする。C をやっとけば C++ …

C++ のお勉強 クラス編

C

C++ のお勉強二日目。前回の「C++ のお勉強 関数編」の続きになる。 だんだん C++ が解ってきた…気がする。 クラスとかオブジェクトとかみんなカッコイイこと言ってるから,クラスは難しいもんだと思っていたけど,ただの構造体じゃないか。C だってうまくす…

C++ のお勉強 関数編

C

L4 の C による実装が見つからないので,解読のため C++ の勉強とか始めた。最近の OS は C++ で実装するもんなのかしら。 「C/C++とJava(第7章)」を読んで,関数まわりはなんとなく理解できたのでメモる。 スコープ 何処でも変数を宣言可能。し…

文字を表示する関数を作ってみよう

文字の表示には,VRAM と呼ばれるメモリ領域に ASCII コードを書き込むだけでよく,カーソルの移動には,表示した文字数をビデオコントローラーに教えるだけでよいことが前回までに分った。 これらを踏まえ文字列を表示する関数を作ってみることにしよう。 m…

C言語のインライン関数について

C GCC

GCCや多くのコンパイラーは,C言語の標準(C99)にインライン関数が取り込まれるずっと前からインライン関数をサポートしていた。そのためかインライン関数の定義は様々で,同じ書式でも各コンパイラで挙動が異なる場合がある。 今回は,インライン関数の定義…

I/Oポートを使ってカーソルを動かす

前回はVRAMを操作し文字の表示を行ったが,ビデオコントローラーには直接命令を送ることはしなかった。ビデオコントローラーへ直接命令を送ることで,表示モードの変更や,カーソルの表示・移動などを行うことが出来る。 今回は,ビデオコントローラーが提供…

C言語でカーネルを書き始める

前回はIPLを書いたので,いよいよカーネルを書き始めることが出来る。 今回からはC言語を使ってOSの開発を行う。普段私たちは,C言語でアプリケーションプログラムの開発を行うとき,main関数からプログラムを書き始める,これはmain関数からプログラムが実…

gasとcでHello,worldしてみる

gasを使ってプログラムを書いてみよう。まずは伝統的にhello,worldからはじめる。 アセンブラで記述しなければならないのはセグメントレジスタの設定のみで、後はCで記述できる。 GAS ここではセグメントレジスタを設定したあとhelloへジャンプしている: cr…