page0082
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* bit指定について
-(by [[K]], 2014.05.22)
** (0)
-OSECPU-VMのrev2には、アセンブラにbitというよくわからない...
-関連するページ:
--[[page0077]]: 32bitまでしかOSECPU-VMはサポートしないと...
--[[page0078]]: VMを改造したい人、移植したい人向けのbitの話
** (1)
-パソコン向けCPUの歴史を考えてみると、8ビットCPUから始ま...
-こうしてみると、まるでビット数が増えることが技術の進歩の...
-しかし一方で、デメリットもあります。たとえば1+2+3+...+9+...
-もし64ビット演算が時々しか必要ないのなら、結局は32ビット...
** (2)
-もし全ての分野に共通な最適なビット数が分かれば話は単純で...
-最適なビット数がわからない以上は、この演算は○○ビットでや...
-VMは、もしCPUのアーキテクチャが16ビットで、それにもかか...
** (3)
-一方で、世界最小サイズを目指してコードを書きたい場合は、...
-なぜ32ビットをデフォルトにしたかです。正直、多くのケース...
--註:16ビットしか要求していない引数に対して32ビットで渡...
** (4) 具体例
-(4-1) LIMM(16, R00, 0x123);
--R00レジスタに0x123が代入されます。この代入操作には16ビ...
~
-(4-2) ADD(8, R01, R02, R03); // R01 = R02 + R03;
--実行前の状態は次の通りだったとします。
|レジスタ|データ|ビット|
|R01|RIGHT:0x2|RIGHT:4|
|R02|RIGHT:0x1234|RIGHT:16|
|R03|RIGHT:0x56789a|RIGHT:32|
--上記ADD命令を実行するとこうなります。
|レジスタ|データ|ビット|
|R01|RIGHT:0xce|RIGHT:8|
|R02|RIGHT:0x1234|RIGHT:16|
|R03|RIGHT:0x56789a|RIGHT:32|
--[解説] この命令は8ビット以上の結果を要求しています。入...
--[Q] R02とR03の精度の最低値は16ビットなのだから、R01の精...
---[A] その通りです。その気になれば0x8aceを結果として格納...
--なお、このADD命令の実行に当たっては、プリフィクス2F-0が...
** (5) [[impressions]]より転機:参考になりそうなやり取り...
-あと、小さいことですが、execStep_checkBitsRange()内で、p...
-質問ばかりで申し訳ないですが、VisualStudio君によればosec...
->checkという名前にはすこし違和感があります。 ・・・なる...
-BIT_DISABLE_REGについて。ご指摘のとおり、今のVMではRxxの...
-なるほど、そういうことでしたか。bitが無い環境のことも考...
->bitが無い環境だと、prefix2f[0]が立っている時に違う動作...
--2F-0プリフィクスがあると、安全モード・高速モードで結果...
--高速モードでは、bit[]がなく、したがってレンジチェックも...
--安全モード時に上位ビットのゴミを常に取り除いてきれいに...
--上位ビットのゴミを明示的に取り除くためには、SBXという命...
--ということで2F-0プリフィクスがあってもなくても、ゴミ部...
--2F-0プリフィクスの意味: この演算結果は一時的にどうして...
たとえばこんな状況:
R00に0x12、R01に0x34が入っている。R00とR01はどちらもbit=...
これには2つの書き方がある。
(1) ADD(32, R02, R00, R01); LIMM(4, R3F, 0x0f); AND(4, R...
(2) PREFIX_2F(0); ADD(4, R02, R00, R01); LIMM(4, R3F, 0x...
1のやり方はプリフィクスがいらないけど、ADDは32ビットで演...
無駄な書き方を「強要」しなければいけないとしたら、それは...
それに対して2は不要な演算は全くない。
-なるほど、ということはVM側のbit[]は、オーバーフローのチ...
-ttwilbさんへ。bit[]について分かっていただけたようでうれ...
** (6) プリフィクスについて
-OR(10)~MOD(1B)の整数演算系の命令について、以下の2つのプ...
--2F-0プリフィクス:演算結果に本質的にゴミが生じるので、...
--2F-1プリフィクス:SHLI(32, R00, R01, 16); を例に説明し...
* こめんと欄
-LIMMではレジスタのbitの値は書き換えられ、ORなどの数値演...
-他の例で言えば、まだ値の代入されたことのない未定義のレジ...
-ORでr0に値を代入する時は確かOR命令の引数bitがr0のbitに適...
-ttwilbさん・Kさん、ありがとうございます。よくわかりまし...
-計算の途中結果は必ずオーバーフローやアンダーフローが発生...
-それとも、中間結果はソースオペランドのレジスタのbitの最...
-計算の途中結果は、オーバーフローやアンダーフローがあれば...
-ああなるほど、bit=32のときに 0x7fffffff * 2 とかをやった...
-完全に検出させるとなると、結構面倒です。しかしだからとい...
-数値比較命令のbit1に関してもう少し詳細な説明が欲しいです...
-これはいい質問ですね!これは、プログラマが両方のレジスタ...
-CMPcc命令でのbit1ですが、これはこういうことにしました。...
-説明ありがとうございます。差が何ビットになるかというのは...
-もしCMPccのbit1がSUBのbitと同じような扱いになるとしたら...
-また、このタイミングになって思ったのですが、2F-0によって...
-差が何ビットになるか規定すれば、計算すべきビット数は減ら...
-2F-0は数値を丸めているのではなくて、現在のbitよりも上位...
-CMPcc命令に2F-0プリフィクスはつきません。そもそもCMPcc命...
-参考:[[page0094]] -- ''K'' SIZE(10){2014-06-24 (火) 12:...
-この言葉ものすごく分かりやすいです! > 2F-0は数値を丸め...
-2F-0プリフィクスの働きについては十分理解できました。 -- ...
-ただ、「計算すべきbitが減る訳ではない」と言ったのは、ほ...
-これもいい質問ですね。まず他の整数演算では指定されたbit...
-あーなるほど…やっとKさんのbitの考え方がわかった気がしま...
-bitはややこしいので、きっと分かってもらえないだろうなと...
-将来的に、主要な商用CPUにも同じ仕様が導入されればいいで...
-どうもありがとうございます。とりあえず、ビット数が多けれ...
#comment
終了行:
* bit指定について
-(by [[K]], 2014.05.22)
** (0)
-OSECPU-VMのrev2には、アセンブラにbitというよくわからない...
-関連するページ:
--[[page0077]]: 32bitまでしかOSECPU-VMはサポートしないと...
--[[page0078]]: VMを改造したい人、移植したい人向けのbitの話
** (1)
-パソコン向けCPUの歴史を考えてみると、8ビットCPUから始ま...
-こうしてみると、まるでビット数が増えることが技術の進歩の...
-しかし一方で、デメリットもあります。たとえば1+2+3+...+9+...
-もし64ビット演算が時々しか必要ないのなら、結局は32ビット...
** (2)
-もし全ての分野に共通な最適なビット数が分かれば話は単純で...
-最適なビット数がわからない以上は、この演算は○○ビットでや...
-VMは、もしCPUのアーキテクチャが16ビットで、それにもかか...
** (3)
-一方で、世界最小サイズを目指してコードを書きたい場合は、...
-なぜ32ビットをデフォルトにしたかです。正直、多くのケース...
--註:16ビットしか要求していない引数に対して32ビットで渡...
** (4) 具体例
-(4-1) LIMM(16, R00, 0x123);
--R00レジスタに0x123が代入されます。この代入操作には16ビ...
~
-(4-2) ADD(8, R01, R02, R03); // R01 = R02 + R03;
--実行前の状態は次の通りだったとします。
|レジスタ|データ|ビット|
|R01|RIGHT:0x2|RIGHT:4|
|R02|RIGHT:0x1234|RIGHT:16|
|R03|RIGHT:0x56789a|RIGHT:32|
--上記ADD命令を実行するとこうなります。
|レジスタ|データ|ビット|
|R01|RIGHT:0xce|RIGHT:8|
|R02|RIGHT:0x1234|RIGHT:16|
|R03|RIGHT:0x56789a|RIGHT:32|
--[解説] この命令は8ビット以上の結果を要求しています。入...
--[Q] R02とR03の精度の最低値は16ビットなのだから、R01の精...
---[A] その通りです。その気になれば0x8aceを結果として格納...
--なお、このADD命令の実行に当たっては、プリフィクス2F-0が...
** (5) [[impressions]]より転機:参考になりそうなやり取り...
-あと、小さいことですが、execStep_checkBitsRange()内で、p...
-質問ばかりで申し訳ないですが、VisualStudio君によればosec...
->checkという名前にはすこし違和感があります。 ・・・なる...
-BIT_DISABLE_REGについて。ご指摘のとおり、今のVMではRxxの...
-なるほど、そういうことでしたか。bitが無い環境のことも考...
->bitが無い環境だと、prefix2f[0]が立っている時に違う動作...
--2F-0プリフィクスがあると、安全モード・高速モードで結果...
--高速モードでは、bit[]がなく、したがってレンジチェックも...
--安全モード時に上位ビットのゴミを常に取り除いてきれいに...
--上位ビットのゴミを明示的に取り除くためには、SBXという命...
--ということで2F-0プリフィクスがあってもなくても、ゴミ部...
--2F-0プリフィクスの意味: この演算結果は一時的にどうして...
たとえばこんな状況:
R00に0x12、R01に0x34が入っている。R00とR01はどちらもbit=...
これには2つの書き方がある。
(1) ADD(32, R02, R00, R01); LIMM(4, R3F, 0x0f); AND(4, R...
(2) PREFIX_2F(0); ADD(4, R02, R00, R01); LIMM(4, R3F, 0x...
1のやり方はプリフィクスがいらないけど、ADDは32ビットで演...
無駄な書き方を「強要」しなければいけないとしたら、それは...
それに対して2は不要な演算は全くない。
-なるほど、ということはVM側のbit[]は、オーバーフローのチ...
-ttwilbさんへ。bit[]について分かっていただけたようでうれ...
** (6) プリフィクスについて
-OR(10)~MOD(1B)の整数演算系の命令について、以下の2つのプ...
--2F-0プリフィクス:演算結果に本質的にゴミが生じるので、...
--2F-1プリフィクス:SHLI(32, R00, R01, 16); を例に説明し...
* こめんと欄
-LIMMではレジスタのbitの値は書き換えられ、ORなどの数値演...
-他の例で言えば、まだ値の代入されたことのない未定義のレジ...
-ORでr0に値を代入する時は確かOR命令の引数bitがr0のbitに適...
-ttwilbさん・Kさん、ありがとうございます。よくわかりまし...
-計算の途中結果は必ずオーバーフローやアンダーフローが発生...
-それとも、中間結果はソースオペランドのレジスタのbitの最...
-計算の途中結果は、オーバーフローやアンダーフローがあれば...
-ああなるほど、bit=32のときに 0x7fffffff * 2 とかをやった...
-完全に検出させるとなると、結構面倒です。しかしだからとい...
-数値比較命令のbit1に関してもう少し詳細な説明が欲しいです...
-これはいい質問ですね!これは、プログラマが両方のレジスタ...
-CMPcc命令でのbit1ですが、これはこういうことにしました。...
-説明ありがとうございます。差が何ビットになるかというのは...
-もしCMPccのbit1がSUBのbitと同じような扱いになるとしたら...
-また、このタイミングになって思ったのですが、2F-0によって...
-差が何ビットになるか規定すれば、計算すべきビット数は減ら...
-2F-0は数値を丸めているのではなくて、現在のbitよりも上位...
-CMPcc命令に2F-0プリフィクスはつきません。そもそもCMPcc命...
-参考:[[page0094]] -- ''K'' SIZE(10){2014-06-24 (火) 12:...
-この言葉ものすごく分かりやすいです! > 2F-0は数値を丸め...
-2F-0プリフィクスの働きについては十分理解できました。 -- ...
-ただ、「計算すべきbitが減る訳ではない」と言ったのは、ほ...
-これもいい質問ですね。まず他の整数演算では指定されたbit...
-あーなるほど…やっとKさんのbitの考え方がわかった気がしま...
-bitはややこしいので、きっと分かってもらえないだろうなと...
-将来的に、主要な商用CPUにも同じ仕様が導入されればいいで...
-どうもありがとうございます。とりあえず、ビット数が多けれ...
#comment
ページ名: