page0042
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* OSECPUのバイトコードコンパイラを作る人へ
-(by [[K]], 2013.06.21)
** (0) はじめに
-省略
** (1) はじめの一歩
-まず何も考えずに、以下の9バイトのファイルを作ってほしい...
05 E1 00 02 00 12 34 56 78
-これの意味するところは・・・
--最初の2バイトはシグネチャ。
--次の1命令はNOP。・・・このNOP命令は重要で、これを省略す...
---つまり最初の命令は必ずNOPにしなければいけない。
--そして次の1命令が R00 = 0x12345678;
-これができたら
prompt>osecpu test.ose verbose:1
-として実行してみてほしい。verbose:1はレジスタ表示を出す...
--ちゃんとR00の値が期待どおりになっているか確認してほしい。
~
-他にもいろいろな命令があるから[[page0032]]で確認しよう。
~
-つまりこういうバイナリファイルを出力できるプログラムさえ...
** (2) フロントエンドコードを作る
-上記で作ったtest.oseに対して、以下のようにするとフロント...
prompt>osectols tool:appack in:test.ose out:minitest.ose
-おっとしまった、この例ではサイズが変わらないではないか!...
~
-別にサイズなんてどうでもいいと思う気持ちは分かる。しかし...
--いろいろと手抜きしたせいです、ごめんなさい・・・
--ちなみにフロントエンドコードにしたものを、バックエンド...
** (3) APIを呼んでみよう
-APIを呼ぶまでの手順を理解したいときは[[page0043]]を読む...
-(つづく)
* こめんと欄
-フロントエンドコードからバックエンドコードを生成するには...
-[[page0034]]の[Q0014]で回答しました。 -- ''K'' SIZE(10){...
#comment
終了行:
* OSECPUのバイトコードコンパイラを作る人へ
-(by [[K]], 2013.06.21)
** (0) はじめに
-省略
** (1) はじめの一歩
-まず何も考えずに、以下の9バイトのファイルを作ってほしい...
05 E1 00 02 00 12 34 56 78
-これの意味するところは・・・
--最初の2バイトはシグネチャ。
--次の1命令はNOP。・・・このNOP命令は重要で、これを省略す...
---つまり最初の命令は必ずNOPにしなければいけない。
--そして次の1命令が R00 = 0x12345678;
-これができたら
prompt>osecpu test.ose verbose:1
-として実行してみてほしい。verbose:1はレジスタ表示を出す...
--ちゃんとR00の値が期待どおりになっているか確認してほしい。
~
-他にもいろいろな命令があるから[[page0032]]で確認しよう。
~
-つまりこういうバイナリファイルを出力できるプログラムさえ...
** (2) フロントエンドコードを作る
-上記で作ったtest.oseに対して、以下のようにするとフロント...
prompt>osectols tool:appack in:test.ose out:minitest.ose
-おっとしまった、この例ではサイズが変わらないではないか!...
~
-別にサイズなんてどうでもいいと思う気持ちは分かる。しかし...
--いろいろと手抜きしたせいです、ごめんなさい・・・
--ちなみにフロントエンドコードにしたものを、バックエンド...
** (3) APIを呼んでみよう
-APIを呼ぶまでの手順を理解したいときは[[page0043]]を読む...
-(つづく)
* こめんと欄
-フロントエンドコードからバックエンドコードを生成するには...
-[[page0034]]の[Q0014]で回答しました。 -- ''K'' SIZE(10){...
#comment
ページ名: