<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM中SP,LR,PC使用

ARM中SP,LR,PC使用

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
MOV PC,LR

看下面這個(gè)ARM匯編吧
BL NEXT ;跳轉到子程序
......... ;NEXT處執行
NEXT
..........
MOV PC,LR ;從子程序返回
這里的BL是跳轉的意思,LR(R14)保存了返回地址
PC(R15)是當前地址,把LR給PC就是從子程序返回
這里有一下總結
首先
1.SP(R13) LR(R14)PC(R15)
2.lr(r14)的作用問(wèn)題,這個(gè)lr一般來(lái)說(shuō)有兩個(gè)作用:
1》.當使用bl或者blx跳轉到子過(guò)程的時(shí)候,r14保存了返回地址,可以在調用過(guò)程結尾恢復。
2》.異常中斷發(fā)生時(shí),這個(gè)異常模式特定的物理R14被設置成該異常模式將要返回的地址。

本文引用地址:http://dyxdggzs.com/article/201611/317868.htm

另外注意pc,在調試的時(shí)候顯示的是當前指令地址,而用mov lr,pc的時(shí)候lr保存的是此指令向后數兩條指令的地址,大家可以試一下用mov pc,pc,結果得到的是跳轉兩條指令,這個(gè)原因是由于arm的流水線(xiàn)造成的,預取兩條指令的結果.
3.》我以前看書(shū)不懂的地方
子程序返回的三種方法
現在總結如下
1.MOV PC,LR
2.BL LR
3.在子程序入口處使用以下指令將R14存入堆棧
STMFD SP!,{,LR}
對應的,使用以下指令可以完成子程序的返回
LDMFD SP!, {,LR}



關(guān)鍵詞: ARMSPLRP

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>