乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ARM LR寄存器

       phoenixcyan 2013-04-20

      ARM LR寄存器

      分類: Linux 學習筆記 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)是當前地址,把LR給PC就是從子程序返回

      這里有一下總結

      首先

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

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

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

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

      子程序返回的三種方法

      現(xiàn)在總結如下

      1.MOV PC,LR

      2.BL LR

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

      STMFD SP!,{<Regs>,LR}

      對應的,使用以下指令可以完成子程序的返回

      LDMFD SP!, {<Regs>,LR}

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多