1. 程式人生 > >ARM指令集--ldr、mov與str的用法與區別

ARM指令集--ldr、mov與str的用法與區別

ARM指令集–ldr、mov與str的用法與區別


ARM 是 RISC 結構,因此只能使用精簡指令。

1. mov的用法

在ARM體系中,mov只能用於資料在暫存器之間的移動或者往暫存器中寫入立即數。格式如下:mov{條件}{s} 目的暫存器,源運算元

MOV     R1,R2    ;R1=R2
   
  • 1

2. ldr的用法

LDR是將記憶體中的數載入到暫存器,LDR可以載入立即數。格式如下:LDR 目的暫存器,源

LDR     R1,=0xE0000000  ;R1=0xE0000000
LDR     R1,0xE0000000   ;將記憶體中地址為0xE0000000的內容載入到R1
LDR R1,[R0] ;將R0中的數所指定的地址的內容傳輸到R1
  • 1
  • 2
  • 3

3. str的用法

STR是將暫存器中的數字載入記憶體。格式如下:STR{條件} 源暫存器,<儲存器地址>

STR     R1,[R0]     ;將R1中的內容傳輸到R0中的數所指定的地址的記憶體中去

   
  • 1
  • 2

4. 他們之間的區別

mov 只能用於暫存器之間的傳輸,傳輸立即數時有條件限制,只能裝載通過偶數次移位能得到的立即數。
str/ldr 可以用於暫存器與記憶體之間的資料交換,STR是將暫存器中的數載入記憶體,LDR是將記憶體中的數載入到暫存器,LDR可以載入立即數。
並且LDR在往暫存器中載入立即數時,不受立即數的限制,而mov受其限制。


參考文獻:

  1. http://blog.chinaunix.net/uid-20769502-id-112379.html
  2. http://blog.sina.com.cn/s/blog_61b313a30101huxd.html

轉自HorizontalView的部落格:http://blog.csdn.net/horizontalview/article/details/50773740