【问题标题】:How to keep a running total in assembly code? ARM cortex M3 (Keil software)如何在汇编代码中保持运行总数? ARM cortex M3(Keil软件)
【发布时间】:2018-02-16 21:40:28
【问题描述】:

这里是初学者。我试图保持 R5 的运行总数,但它不断重置回我设置的原始值。 R3 跟上,但 R5 跟不上

这是我正在处理的问题的一部分。

Summation

lessThan
    CMP R3, R4
    ADD R5, R3, R3
    RSB R5, R5, #60
    ADDLE R3, R3, #1
    ADD R5, R5, #6
    ADD R5, R5, R4
    BLE lessThan

我的 R5 最终是 48(十进制),而它实际上应该是 780。

【问题讨论】:

  • r3和r4的初始值是多少?
  • 使用调试器单步执行您的代码,看看哪条指令以您意想不到的方式更改了r5

标签: assembly arm keil


【解决方案1】:

ADD R5, R3, R3 设置r5 = r3*2,在每次循环迭代中丢弃 R5 的旧值。

你的意思是add r5, r5, r3r5 += r3 吗?还是您需要临时寄存器?

IDK 你想让你的代码做什么,或者为什么,但我的第一段是为什么R5 没有累积单独的总数的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-06
    • 2014-06-08
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2022-01-10
    相关资源
    最近更新 更多