我正在尝试使用 THUMB 指令创建一个阶乘方法,我基本上做到了。
我只有一个关于 PUSH
/POP
操作码的问题:如果我使用 push 将 r0 的值存储在堆栈中(所以 push {r0}
),我可以稍后使用 pop {r1}
将其拉出,还是需要指定与开始时相同的寄存器?感谢您的帮助。
最佳答案
是的,因为 push
/pop
实际上可以扩展为存储/加载多个,它们是对寄存器和内存进行操作的通用指令,所以
push {r0}
相当于
stmdb sp!, {r0} @ or stmfd sp!, {r0} in alt notation
和
pop {r1}
与
相同ldmia sp!, {r1} @ or ldmfd sp!, {r1}
关于assembly - THUMB 推/弹出指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686353/