日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ARM LR寄存器

 phoenixcyan 2013-04-20

ARM LR寄存器

分類: Linux 學(xué)習(xí)筆記 C語言 AT&T匯編 219人閱讀 評論(0) 收藏 舉報

MOV PC,LR

看下面這個ARM匯編吧

BL NEXT ;跳轉(zhuǎn)到子程序

......... ;NEXT處執(zhí)行

NEXT

..........

MOV PC,LR ;從子程序返回

這里的BL是跳轉(zhuǎn)的意思,LR(R14)保存了返回地址

PC(R15)是當(dāng)前地址,把LR給PC就是從子程序返回

這里有一下總結(jié)

首先

1.SP(R13) LR(R14)PC(R15)

2.lr(r14)的作用問題,這個lr一般來說有兩個作用:
1》.當(dāng)使用bl或者blx跳轉(zhuǎn)到子過程的時候,r14保存了返回地址,可以在調(diào)用過程結(jié)尾恢復(fù)。
2》.異常中斷發(fā)生時,這個異常模式特定的物理R14被設(shè)置成該異常模式將要返回的地址。

另外注意pc,在調(diào)試的時候顯示的是當(dāng)前指令地址,而用mov lr,pc的時候lr保存的是此指令向后數(shù)兩條指令的地址,大家可以試一下用mov pc,pc,結(jié)果得到的是跳轉(zhuǎn)兩條指令,這個原因是由于arm的流水線造成的,預(yù)取兩條指令的結(jié)果.

3.》我以前看書不懂的地方

子程序返回的三種方法

現(xiàn)在總結(jié)如下

1.MOV PC,LR

2.BL LR

3.在子程序入口處使用以下指令將R14存入堆棧

STMFD SP!,{<Regs>,LR}

對應(yīng)的,使用以下指令可以完成子程序的返回

LDMFD SP!, {<Regs>,LR}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多