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.建構函式可以...