ウォンツテック

そでやまのーと

OS作成 - ページング&プロセス編

 昨日commitした部分、まったくページング出来ていませんでした(汁。。
cr3レジスタにはpage directoryの物理アドレスを入れなければいけないのに、仮想アドレスを入れていました。
 試しにpage faultが起こるかpage directoryに設定していない0x1000000にアクセスするコード

  char* p = ((char*)(0x1000000));
  p[0] = 'A';

を書いて試してみる。


page faultが発生してますね。
このときのcr2レジスタページフォルトが発生した仮想アドレスが格納されている)を見てみると

大丈夫そうです。

sodex rev.19