LDR和STR无法正常工作?

时间:2014-05-04 20:56:47

标签: assembly arm

我仍然对STR和LDR指令如何工作或我做错了什么感到困惑?这是一个示例代码(使用ARMSIM):

Start:
MOV R5, #10
STR R5, [R4]

LDR R3, [R4]
LDR R2, [R4]

ADD R4, R2, R3

MOV R1, R4
MOV R0, #Stdout
SWI SWI_PrInt

SWI SWI_Exit

所以这就是说:

  1. 将整数10的值放到R5。
  2. 将R5的值(在本例中为整数10)存储到R4的存储器地址。
  3. 将值为10的R3加载到R4的存储器地址中。
  4. 在R2的存储器地址中加载值为10的R2。
  5. 将R3和R2的值添加到R4。 (R3现在应该是20)
  6. 将R4的值移至R1。
  7. 设置#Stdout以打印到控制台。
  8. 打印出20。
  9. 但是,在控制台中,我的输出为0.这怎么可能?如果你把东西存储到内存中,比如一个整数,它会变成别的东西或者我做错了什么?

0 个答案:

没有答案