初めてこのサイトの質問をしますので、間違いや改善についてのフィードバックをお寄せいただきありがとうございます。それが私の問題だと言われています。バイナリへのARM命令のエンコードとデコード
タスク1:次の手順のための対応するアーム組立体表現を書く
11101001_000111000001000000010000
11100100_110100111000000000011001
10010010_111110100100000011111101
11100001_000000010010000011111010
00010001_101011101011011111001100
タスク2:私はこのゼロ経験を持って
STMFA R13!, {R1, R3, R5-R11}
LDR R11, [R3, R5, LSL #2]
MOVMI R6, #1536
LDR R1, [R0, #4]!
EORS R3, R5, R10, RRX
次の命令のための命令コードを書きます教授は私たちの生徒を乾燥させてしまいました。基本的に私はこれらの命令を解読するためのさまざまな方法を見つけましたが、私はまだ3つの大きな疑問を持っています。
私は宿題の最初の部分であるARM命令にバイナリをデコードする方法を知りません。
これらのサフィックスの一部は、たとえばEORSでは見つかりません。それはセット条件ビットですか?命令の前にSがあるときは1にセットされていますか?
私は、1つの命令ラインに複数のレジスタを持つことはできません。例:
EORS R3,R5,R10,RRx
非常に多くのレジスタで何が起こっているのか分かりません。
正しい方向のナッジがあれば幸いです。また、私はARMのマニュアルを検索しましたが、彼らは彼らが探しているものを理解していない人にとってはあまり役に立ちません。彼らはコーディングとデコードのための命令の大部分を持っていますが、私が上記で尋ねたものについてはほとんど説明していません。
1)知っている命令のビットパターンへの入力と一致します。2)はい3)命令に依存します。各レジスタ番号にビットを設定します。私は、エンコードをリストアップしたリソースが与えられていると仮定します。 – Jester
1)しかし、どのように私は異なるコマンドエンコーディング形式を区別できますか? 2)Sがない場合、ビットは設定されていません。 3)しかし、そこには4つのレジスタがあります。これはどのようにデスティネーションレジスタですか?これらの議論が何であるかについての情報はありますか? –
google arm architecturalリファレンスマニュアル。それよりも古い方が良いですが、armv5とarmv7m、armv7mとarmv7mのどちらでもないことを望む皮質以外のものはすべて行います。これらには、完全な命令セットとマシンコード定義とが含まれる。 –