質問

私は二つDAに対応モードになります。例えば:

STMDA R0!, {R1-R7}

の開始アドレスまで R0 - (7 * 4) + 4, では、 R0-24, によると、 ARMアーキテクチャリファレンスマニュアル とend_addressする R0.

い:

  1. の価値 R1 保存され R0-24 または R0?
  2. の場合 R1 格納される R0-24, し、その後の店舗の成長に向けてのメモリから R0-24R0)?
役に立ちましたか?

解決 3

擬似コードの一部を以下に示す:

アドレス= start_addressの 私のために= 0から15 もしregister_list [I] == 1その後、 メモリ[アドレス、4] = Riを アドレス=アドレス+ 4

STMの成長方法は、データを格納する際にアドレッシングモードとは何の関係もないようですか? それは常に高く、アドレッシングモードに下位アドレスからのデータを格納するだけ R0に基づいて開始アドレスが決定!

他のヒント

使用時のアームに複数の店舗および荷重の登録の値は常にロード/保存昇順です。◆なので、使用時の降下に複数の店舗のレジスタをメモリに書き込まれます。ご STMDA 指導の効果的えているにもかかわらず、以下の手順:

  • 店舗 R7R0
  • 店舗 R6R0 - 4
  • 店舗 R5R0 - 8
  • 店舗 R4R0 - 12
  • 店舗 R3R0 - 16
  • 店舗 R2R0 - 20
  • 店舗 R1R0 - 24
  • 差し引28日から R0 自分で出している writeback!).

ですから、お客様のお問い合わせにお応え:

  1. の値 R1R0 - 24.(ここでは、という価値 R0 を実施する前に指導います。ご利用writebackの ! -その後の指導 R0 また28引かれます。)

  2. R1 記録され R0 - 24, が、前述のとおり R1 最後に登録して、その値が格納されます。 R7 格納され、その後の店舗からの成長は下方。

いないわからないの文書化を支援することの答えです。また、微力ですが、応援させていただきてから、最後のために新たにアーム符号といいます。しかし、私は絶対に忘れがどんな風にアームの店舗の登録降の複数のお店です。きっかけになるかもしれないとこによる文書を短期プログラムも行なった。

アームアームを検索するARMアーキテクチャリファレンスマニュアル...

形成された最初のアドレスであり、ベースレジスタの値がマイナスで指定された、プラス4以降のアドレスが4で前のアドレスをインクリメントすることによって形成されているレジスタ数の4倍です。一つのアドレスが指定されている各レジスタのために作られています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top