THUMB推/弹指令

时间:2012-12-03 15:27:13

标签: assembly arm thumb

我正在尝试使用THUMB指令创建一个阶乘方法,我基本上就在那里。

我只有一个关于PUSH / POP操作码的问题:如果我使用push(所以push {r0})将r0的值存储在堆栈中,我以后可以使用{{ 1}}把它拉出来或者我需要指定与开始时相同的寄存器吗?谢谢你的帮助。

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}