書きなぐりメモ
(1)
- とりあえず、レジスタとAPI呼び出ししかできないkhabaを作る。次に簡単な演算や条件分岐もできるようにする。そしてタスクセーブポイントも。 -- K 2009-09-25 (金) 19:09:16
- それでやっとメモリが出てくる。メモリは難しい。がんばる。 -- K 2009-09-25 (金) 19:13:29
- データレジスタは必ず符号付き。メモリは符号なしも可能。 -- K 2009-09-25 (金) 20:52:44
- 無駄な命令の自動除去があれば、プログラミングは楽になる。レジスタに関してならできるはず。32bitごとでいい。メモリだとポインタアクセスされる可能性や、同じではない表記でアクセスされる可能性があって簡単ではない。逆に考えると、それらの問題を設定できればいい?(他の方法ではアクセスしないと。) -- K 2009-09-26 (土) 06:21:32
- タスクセーブポイントまではレジスタの使い方がおかしくてもとがめられない。ESIを破壊してもよい。 -- K 2009-09-26 (土) 06:24:20
- タスクセーブポイントの挿入が不適切でも、推奨されないだけで、使えないわけじゃない。ということにすれば、普通のC言語の利用もとりあえず可能になる。これはいける。 -- K 2009-09-26 (土) 06:57:15
- khabaのコードは適当なツールを使えば、x86のXCOFFや16bit-objなどにできなくてはいけない。APIもライブラリも含めて、しかるべき形式にコンバートされる。16bitなら、DOS用とBIOS用とかテキストVRAM直接制御型の区別もあるべき。これらが同一のkhabaバイナリから生成できる。 -- K 2009-09-27 (日) 07:50:38
- khaba的にimmモードで書かれたMOVだとしても、実機用バイナリではmemになったりする。同様にimmなAPIだとしても、実機用でmemになってかまわない。コンバータはAPIのフォーマットを理解できる。だからimmで書かれても切れ目が分かるし、自動補完部分を事前に補うこともできる。サイズよりもその後の変換のしやすさをとれば、マルチファンクション型もシングルファンクション型に変換される。必要なら最終段階で再マージすればいい。 -- K 2009-09-27 (日) 08:11:50