1

C で ARM(ARM926EJ) 命令をデコードする必要があります。16 進数の 32 ビット命令があります。オペコードオペランドをデコードして取得したい。誰でもこれに適した資料を知っています。

NB QEMU translate.c ファイルを調べました。しかし、それは非常に複雑で、なぜ何をしているのかさえわかりません。

4

2 に答える 2

5

プログラムを使用したくない/使用できない場合は、ARMリファレンスマニュアルを参照してください。

その中には、命令のエンコード専用のセクションがあります。

于 2012-07-16T11:08:57.693 に答える
4

これを行うには、gas と objdump を組み合わせたスクリプトを使用します。もっと良い方法があると確信していますが、これは私にとってはうまくいきます。

#!/bin/sh

cat > /tmp/foo.S <<EOF
 .text
 .arm
 .word $1
EOF

arm-linux-gnueabi-as  /tmp/foo.S -o /tmp/foo.o
echo "ARM:  " `arm-linux-gnueabi-objdump -d /tmp/foo.o | grep "   0:"`
echo "Thumb:" `arm-linux-gnueabi-objdump --disassembler-options=force-thumb -d     /tmp/foo.o | grep "   0:"`
rm -rf /tmp/foo.o /tmp/foo.S
于 2012-07-16T18:05:38.110 に答える