我正在尝试使用THUMB指令创建一个阶乘方法,我基本上就在那里。
我只有一个关于PUSH
/ POP
操作码的问题:如果我使用push(所以push {r0}
)将r0的值存储在堆栈中,我以后可以使用{{ 1}}把它拉出来或者我需要指定与开始时相同的寄存器吗?谢谢你的帮助。
答案 0 :(得分:4)
是的,你可以自push
/ pop
实际扩展到存储/加载多个,这是在寄存器和内存上运行的通用指令,所以
push {r0}
相当于
stmdb sp!, {r0} @ or stmfd sp!, {r0} in alt notation
和
pop {r1}
与
相同ldmia sp!, {r1} @ or ldmfd sp!, {r1}