简单的汇编语言疑惑

时间:2015-10-03 03:08:04

标签: c++ loops assembly keil

我为我的任务制定了一些代码,有些东西告诉我,我没有正确地做到这一点。希望有人可以看看它。 谢谢!

sameorigin

编写一个ARM汇编程序,它将在寄存器1中添加十六进制数字并将总和保存在寄存器0中。例如,如果r1初始化如下:

 AREA   Reset, CODE, READONLY

  ENTRY

  LDR  r1, = 0x13579BA0
  MOV  r3, #0
  MOV  r4, #0
  MOV  r2, #8

Loop  CMP  r2, #0
  BGE   DONE

  LDR  r5, [r1, r4]
  AND  r5, r5, #0x00000000
  ADD  r3, r3, r5
  ADD  r4, r4, #4

  SUB  r2, r2, #1
  B    Loop
  LDR  r0, [r3]
DONE  B    DONE

  END

当程序运行完成时,寄存器0将包含1 + 2 + 0 + A + 7 + 6 + 0 + C之和。

您需要在解决方案中使用以下内容: ·8次迭代循环 ·逻辑右移指令 ·AND指令(用于强制选择的位为0)

我知道我甚至没有使用LSR。我应该把它放在哪里?我刚刚开始大会希望有人对这段代码做了一些改进..

0 个答案:

没有答案