page0033
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* OSECPUのアプリはなぜ小さいのか
-(by [[K]], 2013.05.15)
** 要点
-OSECPUのアプリが小さいのは、以下の理由によります。
--サポートしている命令数が少ない。
---命令数が少なければ命令を表現するためのビット数が節約で...
---これはできることが少ないというよりも、余計なものがない...
--基本単位が0.5バイト。
---1バイト単位で考えていたら、どんなに短くても1命令で1バ...
---1バイトといったら0~255までが表現できるわけですが、正...
--利用頻度の高い命令は短い。
---こういう機械語はよく使うと経験的に知っているので、それ...
--命令長が可変長。
---OSECPUのコードはJITコンパイラによって翻訳されてから実...
** 例を交えた解説
-R01レジスタに、定数3を代入。
213 : 1.5バイト
--2が定数代入命令、1がレジスタ番号、3は定数。
-R01レジスタに、定数0x1234を代入。
21741234 : 4.0バイト
--定数部分は741234に変化している。74は後続の4桁が定数フィ...
--参考: http://osask.net/w/?gg02/p0002
-R11レジスタに、定数0を代入。
2910 : 2.0バイト
--0x11というレジスタ番号は当然0.5バイトでは表現できないの...
-R02に1を加算する。
9421 : 2.0バイト
--94が命令コード(0x14を意味して、ADD命令を指す)。
-[考察] x86の16bitモードと比較すれば、たとえば、レジスタ...
-しかしその一方で、小さな値に限れば1.5バイトで代入できた...
** 拡張性など
-OSECPUアプリの実行ファイルは、小さすぎて拡張性がないと思...
-まず実行ファイルの最初の2バイトはシグネチャです。これで...
-次に3バイト目が以下の値の時には、特別な意味を持たせてい...
--0x(NOP):実行ファイルはバックエンドコードで記述されて...
--87(end-for):拡張ヘッダが後続する
--F0(NOPの別表現):tek5圧縮がかかっている
--アプリの先頭にどうしてもNOP命令を置きたいときは80で記述...
-したがって、87から書き始めれば、スタックサイズやヒープサ...
** 関連リンク
-[[page0031]] フロントエンドバイトコード #0
** こめんと欄
-このページにこめんと欄はありません。このページの内容にコ...
終了行:
* OSECPUのアプリはなぜ小さいのか
-(by [[K]], 2013.05.15)
** 要点
-OSECPUのアプリが小さいのは、以下の理由によります。
--サポートしている命令数が少ない。
---命令数が少なければ命令を表現するためのビット数が節約で...
---これはできることが少ないというよりも、余計なものがない...
--基本単位が0.5バイト。
---1バイト単位で考えていたら、どんなに短くても1命令で1バ...
---1バイトといったら0~255までが表現できるわけですが、正...
--利用頻度の高い命令は短い。
---こういう機械語はよく使うと経験的に知っているので、それ...
--命令長が可変長。
---OSECPUのコードはJITコンパイラによって翻訳されてから実...
** 例を交えた解説
-R01レジスタに、定数3を代入。
213 : 1.5バイト
--2が定数代入命令、1がレジスタ番号、3は定数。
-R01レジスタに、定数0x1234を代入。
21741234 : 4.0バイト
--定数部分は741234に変化している。74は後続の4桁が定数フィ...
--参考: http://osask.net/w/?gg02/p0002
-R11レジスタに、定数0を代入。
2910 : 2.0バイト
--0x11というレジスタ番号は当然0.5バイトでは表現できないの...
-R02に1を加算する。
9421 : 2.0バイト
--94が命令コード(0x14を意味して、ADD命令を指す)。
-[考察] x86の16bitモードと比較すれば、たとえば、レジスタ...
-しかしその一方で、小さな値に限れば1.5バイトで代入できた...
** 拡張性など
-OSECPUアプリの実行ファイルは、小さすぎて拡張性がないと思...
-まず実行ファイルの最初の2バイトはシグネチャです。これで...
-次に3バイト目が以下の値の時には、特別な意味を持たせてい...
--0x(NOP):実行ファイルはバックエンドコードで記述されて...
--87(end-for):拡張ヘッダが後続する
--F0(NOPの別表現):tek5圧縮がかかっている
--アプリの先頭にどうしてもNOP命令を置きたいときは80で記述...
-したがって、87から書き始めれば、スタックサイズやヒープサ...
** 関連リンク
-[[page0031]] フロントエンドバイトコード #0
** こめんと欄
-このページにこめんと欄はありません。このページの内容にコ...
ページ名: