0

x86 バイナリjmp %eaxでは、jmpターゲットeaxが実行時に計算される のようなステートメントを見つけることがあります。これにより、静的な制御フロー グラフの作成が複雑になります。私の質問は、dalvik バイトコードにも同様の命令がありますか? つまり、実行時にのみ計算できるブランチ ターゲットはありますか?

dalvik では、これは決定論的であると聞きました。つまり、実行時に分岐先が決定されず、代わりにコンパイラが情報を保存するということです。

フィードバックをお待ちしております。可能であれば、参考文献をご覧ください。

4

1 に答える 1

0

いいえ、Dalivkバイト コードは固定ジャンプのみを許可します。ジャンプ レジスタに相当するものはありません。すべてのジャンプは正確なオフセットです。正式な参考文献はありませんが、昨日たまたまこのプレゼンテーションを読みました。このプレゼンテーションでは、この制限について明示的に言及しています。

上にリンクされたプレゼンテーションでは、Dalvik がネイティブ コードの実行をある程度サポートしていると主張しています。これにより、ターゲット アーキテクチャがサポートするあらゆるタイプのブランチが許可されると思います。しかし、それはバイトコードとはほとんど関係ありません。

于 2013-10-25T14:40:00.370 に答える