新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM中鏈接寄存器LR和指令寄存器IR的關系

        ARM中鏈接寄存器LR和指令寄存器IR的關系

        作者: 時間:2016-11-09 來源:網絡 收藏
        ARMLR存儲的是執行BL或者BLX指令后,PC的值,用于保存函數調用的返回地址。IR存儲的是下一條將要執行的指令,有什么區別?

        先看定義:

        本文引用地址:http://www.104case.com/article/201611/317867.htm

        (1)PC是程序計數器,存儲將要執行的指令地址

        (2)LR是鏈接寄存器,是ARM處理器中一個有特殊用途的寄存器,當調用函數時,返回地址即PC的值被保存到LR中(mov lr,pc)。

        (3)IR是指令寄存器,用來保存當前正在執行的一條指令。當執行一條指令時,先把它從內存取到數據寄存器(DR)中,然后再傳送至IR。

        區別:

        (1)IR是微體系結構概念(什么是微體系結構?就是程序員看不到,但硬件中確實存在的硬件邏輯,只有系統設計者知道其存在。),而LR是程序員可見的寄存器。比如用gdb調試程序時,如果打印LR寄存器內容是可以看到其值的,但是打印IR是不可能的。

        (2)LR是PC的備份,PC寄存器存的是將要執行的指令的地址;IR存的是將要送到ALU等部件執行的指令內容。

        暫時只想到這些,歡迎補充。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 烟台市| 从江县| 玛曲县| 长丰县| 乌鲁木齐县| 塔河县| 永顺县| 镇沅| 阜城县| 义马市| 兴文县| 和政县| 环江| 长治市| 和林格尔县| 江西省| 宜城市| 安吉县| 大田县| 桦甸市| 固安县| 阿瓦提县| 洛扎县| 海丰县| 大宁县| 靖州| 鄂州市| 依安县| 靖边县| 临江市| 深水埗区| 霞浦县| 宝鸡市| 化德县| 庆阳市| 静海县| 金寨县| 会同县| 阳朔县| 万宁市| 昂仁县|