30日でできるOS自作入門【14日目】【祝2週間】
概要
これはMozyの1人アドベントカレンダー 2018 の14日目の記事です。
書こうとした経緯は、こちら
今日の内容
- 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週間を迎えて
継続はできているぞ! 内容は薄い日もあるけど継続は力なり。このまま完遂まで行ってみよう!