0

どうすればこの真実を「真実」にすることができますか?

CMP             R0, #0

私がやりたいのは例えば作ることです

CMP R0,R0 or CMP #0, #0

0028はオペコードです。結果なしでやろうとしてい28 28ます!別の質問はどのような構造BNE.Wですか?これが最後のWなのか?BEでそれを変更するにはどうすればよいですか?オペコードは40 F0 65 85

注:すべてのオペコードはサムモードです!

*編集Mac用のarmv7コンパイラは存在しますか?

4

1 に答える 1

1

そのようにして、これらの命令から必要なオペコードをアセンブルCMP R0, R0または抽出するだけです。CMP #0, #0


もう1つの方法は、ARMリファレンスマニュアルを参照して、手動でオペコードを作成することです。これは私がすぐに見つけたARMv5マニュアルであり、2つのレジスタを比較するためのオペコードの作成の詳細が記載され7.1.22ています。CMP <Rn>, <Rm>詳細は、投稿する直前に見つけたARMv7のマニュアルと同じようです。

ビット15〜6が0 1 0 0 0 0 1 0 1 0であり、ビット5〜3が最初のレジスタの番号(番号0はの3ビットで表されますR0)であり、ビット2〜0は2番目のレジスタ(もR0)です。したがって、オペコードは次のようになります。

0 1 0 0 0 0 1 0 1 0CMP000R0000R0

10000101000000016進数は4280、したがって、リトルエンディアンの順序では、必要な2バイトはです80 42

ご覧のとおり、アセンブラーにそれを実行させる方がはるかに高速です。

于 2012-02-21T22:44:24.003 に答える