- 作者: 川合秀実
- 出版社/メーカー: マイナビ出版
- 発売日: 2006/03/01
- メディア: Kindle版
- この商品を含むブログを見る
すでに3日目どころか42人日ぐらいかかってるので成果報告をしておきたい。
なぜアセンブラを再実装?
OS自作入門ではNASM/MASMベースの独自のアセンブラが使われており、これベースでOS作成が進められている。
しかしLinux環境ではどうにもビルドできず、古いコンパイラ(gcc-3.x)でしか使えないソースが中心だったので勉強と趣味を兼ねて再実装したら面白いと思いやり始めた。
進捗
2016/06/08時点では、書籍の3日目までのアセンブラ(harib00bまで)はバイナリに変換できるようになった。
使用できるオペコード(部分的に実装しているものも含む)は以下の通り:
- ADD
- CMP
- DB
- DD
- DW
- HLT
- INT
- JAE
- JBE
- JC
- JE
- JMP
- JNC
- MOV
- ORG
- RESB
ソースコード上の工夫
・std::function を積極的に使い、オペコードごとに関数オブジェクト的なものを作れるようにした
・Parasol - 実行時文法定義のできる構文解析ライブラリ - を使って構文解析してみた
今後の展望 - 2016/06/08
進捗 - 2016/08/15
進捗 - 2016/08/30
- 早く4日目に到達したい(進捗わずか)
- アセンブラ中の数値計算処理を実装完了 -> Tinyexprで文字列上の数値計算をする - なんとな~くしあわせ?の日記
- またひたすら命令を実装する作業に戻る
進捗 - 2016/10/28
- 早く4日目に到達したい(苦しい)
- 3日目のすべてのオペコードをアセンブルすることに成功 -> harib00iの実装 · Issue #4 · Hiroyuki-Nagata/opennask · GitHub
- ここを見ながらqemuでの動作を目指す Cyber Bird OS自作入門 onLinux 3日目