ARM的六大類指令集 載入 儲存指令

2021-07-06 11:29:42 字數 4128 閱讀 9465

arm

微處理器支援載入

/儲存指令用於在暫存器和儲存器之間傳送資料,載入指令用於將儲存器中的資料傳送到暫存器,儲存指令則完成相反的操作。常用的載入儲存指令如下:

—ldr

字資料載入指令 —

ldrb

位元組資料載入指令

—ldrh

半字資料載入指令

—str

字資料儲存指令 —

strb

位元組資料儲存指令

—strh

半字資料儲存指令 1

、ldr指令

ldr指令的格式為:

ldr 目的暫存器,《儲存器位址》

ldr指令用於從儲存器中將乙個

32位的字資料傳送到目的暫存器中。該指令通常用於從儲存器中讀取

32位的字資料到通用暫存器,然後對資料進行處理。當程式計數器

pc作為目的暫存器時,指令從儲存器中讀取的字資料被當作目的位址,從而可以實現程式流程的跳轉。該指令在程式設計中比較常用,且定址方式靈活多樣,請讀者認真掌握。

指令示例:

ldr r0

,[r1]

;將儲存器位址為

r1的字資料讀入暫存器r0。

ldr r0

,[r1

,r2]

;將儲存器位址為

r1+r2

的字資料讀入暫存器r0。

ldr r0

,[r1

,#8]

;將儲存器位址為

r1+8

的字資料讀入暫存器r0。

ldr r0

,[r1

,r2]

!;將儲存器位址為

r1+r2

的字資料讀入暫存器

r0,並將新位址r1+

r2寫入r1。

ldr r0

,[r1

,#8]

!;將儲存器位址為

r1+8

的字資料讀入暫存器

r0,並將新位址r1+

8寫入r1。

ldr r0

,[r1],r2

;將儲存器位址為

r1的字資料讀入暫存器

r0,並將新位址r1+

r2寫入r1。

ldr r0

,[r1,r2

,lsl#2]

!;將儲存器位址為r1+

r2×4的字資料讀入暫存器

r0,並將新位址r1+

r2×4寫入

r1。ldr r0

,[r1],r2

,lsl#2

;將儲存器位址為

r1的字資料讀入暫存器

r0,並將新位址r1+

r2×4寫入

r1。 2

、ldrb指令

ldrb

指令的格式為:

ldrb 目的暫存器,《儲存器位址》

ldrb指令用於從儲存器中將乙個

8位的位元組資料傳送到目的暫存器中,同時將暫存器的高

24位清零。該指令通常用於從儲存器中讀取

8位的位元組資料到通用暫存器,然後對資料進行處理。當程式計數器

pc作為目的暫存器時,指令從儲存器中讀取的字資料被當作目的位址,從而可以實現程式流程的跳轉。

指令示例:

ldrb r0

,[r1]

;將儲存器位址為

r1的位元組資料讀入暫存器

r0,並將

r0的高

24位清零。

ldrb r0

,[r1

,#8]

;將儲存器位址為r1+

8的位元組資料讀入暫存器

r0,並將

r0的高

24位清零。 3

、ldrh指令

ldrh

指令的格式為:

ldrh 目的暫存器,《儲存器位址》

ldrh指令用於從儲存器中將乙個

16位的半字資料傳送到目的暫存器中,同時將暫存器的高

16位清零。該指令通常用於從儲存器中讀取

16位的半字資料到通用暫存器,然後對資料進行處理。當程式計數器

pc作為目的暫存器時,指令從儲存器中讀取的字資料被當作目的位址,從而可以實現程式流程的跳轉。

指令示例:

ldrh r0

,[r1]

;將儲存器位址為

r1的半字資料讀入暫存器

r0,並將

r0的高

16位清零。

ldrh r0

,[r1

,#8]

;將儲存器位址為r1+

8的半字資料讀入暫存器

r0,並將

r0的高

16位清零。

ldrh r0

,[r1

,r2]

;將儲存器位址為r1+

r2的半字資料讀入暫存器

r0,並將

r0的高

16位清零。 4

、str指令

str指令的格式為:

str 源暫存器,《儲存器位址》

str指令用於從源暫存器中將乙個

32位的字資料傳送到儲存器中。該指令在程式設計中比較常用,且定址方式靈活多樣,使用方式可參考指令

ldr

指令示例:

strr0

,[r1],#8

;將r0

中的字資料寫入以

r1為位址的儲存器中,並將新位址r1+

8寫入r1。

strr0

,[r1

,#8]

;將r0

中的字資料寫入以r1+

8為位址的儲存器中。 5

、strb指令

strb

指令的格式為:

strb 源暫存器,《儲存器位址》

strb指令用於從源暫存器中將乙個

8位的位元組資料傳送到儲存器中。該位元組資料為源暫存器中的低

8位。

指令示例:

strb r0

,[r1]

;將暫存器

r0中的位元組資料寫入以

r1為位址的儲存器中。

strb r0

,[r1

,#8]

;將暫存器

r0中的位元組資料寫入以r1+

8為位址的儲存器中。 6

、strh指令

strh

指令的格式為:

strh 源暫存器,《儲存器位址》

strh指令用於從源暫存器中將乙個

16位的半字資料傳送到儲存器中。該半字資料為源暫存器中的低

16位。

指令示例:

strh r0

,[r1]

;將暫存器

r0中的半字資料寫入以

r1為位址的儲存器中。

strh r0

,[r1

,#8]

;將暫存器

r0中的半字資料寫入以r1+

8為位址的儲存器中。

0

給主人留下些什麼吧!~~

健腦食物六大類

乙個人能否有良好的記憶,主要是取決於大腦皮層的機能狀態。在飲食中,如果能有意選擇下類食品,對身體,尤其是很有益處的。植物類 多吃大豆和豆類製品。豆類食品物美價廉,營養豐富,容易消化吸收,具有清熱滋陰 調理脾胃的功效。特別是豆類製品含有豐富的蛋白質和多種人體必需的氨基酸,能增強腦血管功能,增加腦細胞活...

Android六大類程序介紹

前台程序 foreground 目前正在螢幕上顯示的程序和一些系統程序。舉例來說,dialer storage,google search等系統程序就是前台程序 再舉例來說,當你執行乙個程式,如瀏覽器,當瀏覽器介面在前台顯示時,瀏覽器屬於前台程序 foreground 但一旦你按home回到主介面,...

類的六大預設成員函式

1.建構函式 如果類的成員變數為私有的,要對這些成員初始化必須呼叫乙個共有的成員函式來進行.這個共有的成員函式在定義物件的同時會自動執行一次,被呼叫的函式稱為建構函式.建構函式的特點 1.函式名與類名相同.2.無返回值.3.建構函式可以過載.4.例項化物件時,系統呼叫相應的建構函式.5.建構函式可以...