Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 汇编:子程序和PUSH/POP_Assembly_Arm_Subroutine - Fatal编程技术网

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是否恰好位于数据中止向量的地址?