久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > ARM微處理器的指令集概述一——ARM應用系統開發詳解筆記

ARM微處理器的指令集概述一——ARM應用系統開發詳解筆記

作者: 時間:2016-11-20 來源:網絡 收藏
ARM微處理器指令集概述

ARM指令集是加載/存儲型的,就是說指令集僅僅能處理寄存器中的數據,而且處理結果都要放回寄存器中,而對系統存儲器的訪問則需要通過專門的加載/存儲指令來完成。

本文引用地址:http://cqxgywz.com/article/201611/318743.htm

ARM微處理器的指令集可以分為六大類

跳轉指令、數據處理指令、程序狀態寄存器(PSR)處理指令、加載/存儲指令、協處理器指令和異常產生指令。

一 指令的條件域

當處理器工作在ARM狀態時,幾乎所有的指令均根據CPSR中條件碼的狀態和指令的條件域有條件的執行。當指令的執行條件滿足時,指令被執行,否則指令被忽略。每一條ARM指令包含4位的條件碼,位于指令的最高4位[31:28]。條件碼共有16種,每種條件碼可用兩個字符表示,這兩個字符可以添加在指令助記符的后面和指令同時使用。
例如,跳轉指令B可以加上后綴EQ變為BEQ表示“相等則跳轉”,即當CPSR中的Z標志置位時發生跳轉。

在16種條件標志碼中,只有15種可以使用。

二 ARM 指令的尋址方式

立即尋址

立即尋址也叫立即數尋址,這是一種特殊的尋址方式,操作數本身就在指令中給出,只要取出指令也就取到了操作數。

寄存器尋址

寄存器尋址就是利用寄存器中的數值作為操作數

寄存器間接尋址

寄存器間接尋址就是以寄存器中的值作為操作數的地址,而操作數本身存放在存儲器中。

基址變址尋址

基址變址尋址就是將寄存器(該寄存器一般稱作基址寄存器)的內容與指令中給出的地址偏移量相加,從而得到一個操作數的有效地址。變址尋址方式常用于訪問某基地址附近的地址單元。例:

LDR R0,[R1,#4] ;R0←[R1+4]
LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4
LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4
LDR R0,[R1,R2] ;R0←[R1+R2]

多寄存器尋址

采用多寄存器尋址方式,一條指令可以完成多個寄存器值的傳送。這種尋址方式可以用一條指令完成傳送最多 16 個通用寄存器的值。例

LDMIA R0,{R1,R2,R3,R4}
;R1←[R0]
;R2←[R0+4]
;R3←[R0+8]
;R4←[R0+12]

相對尋址

與基址變址尋址方式相類似,相對尋址以程序計數器 PC 的當前值為基地址,指令中的地址標號作為偏移量,將兩者相加之后得到操作數的有效地址。
BL NEXT ;跳轉到子程序 NEXT 處執行

堆棧尋址

ARM 微處理器支持四種類型的堆棧工作方式,即:
- 滿遞增堆棧:堆棧指針指向最后壓入的數據,且由低地址向高地址生成。
- 滿遞減堆棧:堆棧指針指向最后壓入的數據,且由高地址向低地址生成。
- 空遞增堆棧:堆棧指針指向下一個將要放入數據的空位置,且由低地址向高地址生成。
- 空遞減堆棧:堆棧指針指向下一個將要放入數據的空位置,且由高地址向低地址生成。



關鍵詞: ARM微處理器指令

評論


技術專區

關閉