汇编:子程序和PUSH / POP

时间:2015-02-27 18:57:36

标签: assembly arm subroutine

嗨,大家好我的汇编语言代码有问题。我正在尝试使用堆栈将参数传递给子例程,但这是我无法解决的问题:

...some other code...
FindMin: PUSH {R2} ;FindMin is a loop
         BL ELEMENT  ;ELEMENT is used to read the value
         MOV R6,R5
         PUSH {R3}   ;R3 contains the address of Dj
         BL ELEMENT
...other part of the code...

我的ELEMENT是这样的:

ELEMENT:
    POP {R4}
    LDR R5,[R4]
    BX LR

我跟踪了程序,在执行PUSH {R3}后,而不是继续进行BL ELEMENT,程序将返回PUSH {R2}。它将继续这个无限循环。我不知道它为什么会这样。你们能提一些建议吗?

0 个答案:

没有答案