Assembly 汇编:子程序和PUSH/POP
嗨,伙计们,我在汇编语言代码方面遇到了麻烦。我试图使用堆栈将参数传递给子例程,但我无法解决以下问题:Assembly 汇编:子程序和PUSH/POP,assembly,arm,subroutine,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
...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:
POP {R4}
LDR R5,[R4]
BX LR
我跟踪了程序,在执行PUSH{R3}之后,程序将返回PUSH{R2},而不是继续执行BL元素。它将继续这个无限循环。我不知道为什么会这样。你们能给点建议吗?你们应该为适当的汇编语言添加一个标记,或者在标题中提到它。如果标记不存在,它将帮助你们得到更好的答案。不知道怎么会发生这种情况。请确保您正在调试正确的程序,而不是以前的版本或其他东西。如果这是裸机/模拟器的东西,它在哪里加载,以及之前有多少“其他代码”,即推送r2是否恰好位于数据中止向量的地址?