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三個寄存器。