4

aarch64-linux-gnu-objdumpARM v8のプログラムの一部を逆アセンブルするために使用しています。V8 64 ビット命令ではうまく機能しますが、モードが V7 命令セット (A32) に変更されると失敗します。コードは V8 命令セットとして開始され、A32 ( AArch32 実行状態) に切り替わり、T32サム命令セットに切り替わります。A32 および T32 命令を逆アセンブルするにはどうすればよいですか? モードが切り替わったときにコードを分割して、別の命令モード ブロックを作成する必要がありますか?

どんな助けでもいただければ幸いです

4

1 に答える 1

4

32 ビット ツールチェーン内の A32 ("ARM") および T32 ("Thumb") とは異なり、32 ビット ARM アーキテクチャと 64 ビット ARM アーキテクチャの間でクロス命令セットのサポートはありません。A64 はまったく新しい命令セットです。

64 ビット状態と 32 ビット状態の間にはインターワーキングが存在しないため (例外が発生した場合にのみ「幅」を変更できます)、これは通常の使用では問題になりません。しかし、いくつかの例外レベルのコードを含むスタンドアロン イメージをビルドするときは、少し面倒になると想像できます。

A64 部分には aarch64-linux-gnu- を、A32/T32 部分には arm-linux-gnueabihf- を使用する必要があります。

于 2014-02-04T18:42:30.630 に答える