mozyのかきおき

mozyの読書感想文や思考置き場

30日でできるOS自作入門【14日目】【祝2週間】

f:id:mozy_ok:20181130220523p:plain

概要

これはMozyの1人アドベントカレンダー 2018 の14日目の記事です。

adventar.org

書こうとした経緯は、こちら

mozy-ok.hatenablog.com

今日の内容

  • C言語からメモリの書き込みたいぞ

今日やったこと

  • C言語と画面表示の練習 昨日は、画面を真っ黒にすることはできたが、やっぱり何か絵を描いてみたいよね。
    そのためには、VRAMになにかを書き込めば良い。そのためには、メモリの番地を直接指定して書き込む必要があるので、そういう関数を作ってしまおう。ということになった
    nascfunc.nasに追記
_write_mem8:    ; void write_mem8( int, addr, int data );
    MOV    ECX, [ESP+4]    ; [ESP+4]にaddrが入っているのでそれをECXに読み込む
    MOV    AL, [ESP+8]    ; [ESP+8]にdataが入っているのでそれをALに読み込む
    MOV    [ECX], AL
    RET

これは write_mem8(0x1234, 0x56) のように使う。
動作としては MOV BYTE [0x1234], 0x56 をやらせたいということ。

ハマりポイント

特になかった。順調だが、進度は亀のように遅い笑

知ったこと

なるほど。言われてみればVRAMにデータを書き込めば表示は出るよな。
普段はVRAMとか意識せずにGUIなどを使っているのだなぁと思った。

2週間を迎えて

継続はできているぞ! 内容は薄い日もあるけど継続は力なり。このまま完遂まで行ってみよう!