ARM7 LPC2378 远程升级----STMFD、LDMFD
这里STMFD、LDMFD讲的比较浅显,要想深入理解,大家可以看看这篇文章点击打开链接
入栈、出栈的指令格式:
{cond} Rn{!},
{cond}:指令类型
{cond}:指令类型
Rn:基址寄存器,其不可以为R15
{!}:为可选后缀,若选用该后缀,表示请求回写,则当数据传送完毕之后,将最后的地址写入到基址 寄存器
{!}:为可选后缀,若选用该后缀,表示请求回写,则当数据传送完毕之后,将最后的地址写入到基址 寄存器
(Rn)中,否则,W=0。表示请求不写回,基址寄存器的内容不改变。
{^}:寄存器列表,寄存器范围包含在{}(比如{R0,R2-R7,R10}),其可以是R0~R15的任意组合。由于R15是
pc,对其操作可能会造成程序跳转,R15在最后一个被传输。序号低的寄存器对应于存储器的低地址,
不
考虑{...}中的次序
STMFD:满递减入栈 LDMFD:满递减出栈
为什么在这里要给大家讲这两条指令,因为下篇将会谈到ARM7远程升级时的重点——软中断SWI,会涉及到这两条指令及上篇所讲的PC、SP、LR三个寄存器。
本文详细介绍了 ARM7 LPC2378 微控制器中 STMFD 和 LDMFD 指令的工作原理与使用方法。这两条指令用于实现寄存器的快速入栈和出栈操作,在软中断 SWI 的处理过程中扮演关键角色。文章还解释了这些指令如何影响 SP、PC 和 LR 寄存器,并提供了具体的指令格式说明。

1395

被折叠的 条评论
为什么被折叠?



