十四 暫存器和定址

2021-06-27 10:28:04 字數 1306 閱讀 5042

1.暫存器分類:

2.一共37個暫存器,31個通用暫存器,6個狀態暫存器

其中usr和sys的暫存器很類似

3.通用暫存器:

(1)不分組暫存器0--7

(2)分組暫存器:8--14

(3)pc指標:r15

4狀態暫存器:只有在異常模式下,才會既有cpsr又有spsr,usr和sys模式下只有cpsr,為的是保護現場

(1)n:表示符號,1表示負數,0表示正數。如兩個數進行比較和減法操作

(2)z:當兩個數相等,為1,否則為0,也是比較和加法操作居多

(3)i:當他為1的時候,處理器不能產生中斷,即中斷遮蔽

(4)f:快速中斷遮蔽,為1生效

(5)m【4:0】:表明不同的工作模式,可讀可寫,及變換工作模式,一般用讀,修改,寫的方式來切換工作模式。

5.特殊暫存器

(1)r13:sp指標,堆疊暫存器

(2)r14:lr鏈結暫存器。有兩個特殊功能,每一種模式下都可以用於儲存函式的返回位址,另外就是異常處理後的返回位址,如中斷。

(3)r15:pc指標,程式計數器

6.定址方式:處理器根據指令提供的資訊找到所需要的運算元的過程,針對源運算元

7.立即定址:運算元直接給出,以#作為字首

add     r0,r0,#0x3f

8.暫存器定址:運算元存放在暫存器中,以暫存器直接出現在指令中

add     r0,r1,r2

9.暫存器間接定址:運算元在記憶體中,其對應的位址存放在暫存器中,以【暫存器】的形式出現在指令中

ldr     r0,[r2]

10.基址變址定址:運算元在記憶體中,其對應的位址由基址暫存器裡的值作為基位址,然後加上偏移量,從而得到運算元在記憶體中實際的實體地址,以【基址暫存器,偏移量】形式出現在指令中

ldr     r0,[r1,#4]

11.相對定址:和基址變址相似,只不過以當前pc指標的值作為基位址,然後加上標號偏移量,從而得到實際的運算元位址,常用於程式的跳轉和返回。

bl     next(相對定址)

...     ...

next

...     ...

mov     pc,lr

暫存器定址方式

指令所要的運算元已儲存在某暫存器中,或把目標運算元存入暫存器。把在指令中指出所使用暫存器 即 暫存器的助憶符 的定址方式稱為暫存器定址方式。指令中可以引用的暫存器及其符號名稱如下 8位暫存器有 ah al bh bl ch cl dh和dl等 16位暫存器有 ax bx cx dx si di sp...

暫存器定址方式

微機系統有七種基本的定址方式 立即定址方式 暫存器定址方式 直接定址方式 暫存器間接定址方式 暫存器相對定址方式 基址加變址定址方式 相對基址加變址定址方式等。其中,後五種定址方式是確定記憶體單元有效位址的五種不同的計算方法,用它們可方便地實現對陣列元素的訪問。立即數定址方式 mov ah,80h ...

暫存器相對定址方式

運算元在儲存器中,其有效位址是乙個基址暫存器 bx bp 或變址暫存器 si d i 的內容和指令中的8位 16位偏移量之和。其有效位址的計算公式如公式所示。在不使用段超越字首的情況下,有下列規定 若有效位址用si di和bx等之一來指定,則其預設的段暫存器為ds 若有效位址用bp來指定,則其預設的...