【发布时间】:2013-11-23 11:11:31
【问题描述】:
我想知道如何POP 将变量从堆栈中取出并将其存储在寄存器中。
例如:
asm(" MOV R5, #10");
asm ("MOV R6, #20");
asm("PUSH {R5,R6}");
我现在想将POP 变量从堆栈中取出并将R6 的值存储在R5 中,反之亦然。
我搜索了 ARM 网站 (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204j/Babefbce.html),但找不到有价值的答案。
我希望有人能帮助我。
编辑:
我认为这可以完成这项工作:
asm("MOV R5, #10");
asm("MOV R6, #20");
asm("PUSH {R5,R6}");
asm("POP {R5,R6}");
但是寄存器不会根据我的调试器而改变。
【问题讨论】:
-
你想交换它们。尝试单独推送和弹出它们。
-
弹出时的值存储在哪里?
-
到你放在列表中的寄存器,比如 pop {r4, r5}
-
你的问题的答案在你提到的arm网站上,架构参考手册非常详细地描述了指令集,push是如何工作的,pop是如何工作的。