Arm彙編指令集1

彙編指令是CPU指令的助記符,通過編譯後會生成一串10組成的機器碼,能夠由CPU讀取執行。編程

 

彙編僞指令本質上不是僞指令(只是和指令一塊兒寫在代碼中),它是編譯器環境提供的,目的是用來知道編譯過程,通過編譯後僞指令最終不會生成機器碼。架構

 

ARM彙編特色1:函數

ARM採用RISC架構,CPU自己不能直接讀取內存,而須要先將內存中的內容加載入CPU中的通用寄存器中才能被CPU處理。操作系統

ldr(load register)指令將內存內容加載到通用寄存器中。blog

str(store register)指令將通用寄存器內容加載到內存中。內存

ldr/str組合用來實現ARM CPU和內存數據交換編譯器

 

ARM彙編特色2:ARM支持8中尋址方式io

寄存器尋址             mov r1,r2編譯

當即尋址                mov r0, #0xff0class

寄存器移位尋址      mov r0, r1, lsl #3

寄存器間接尋址      ldr r1, [r2]

基址變址尋址         ldr r1,[r2,#4]

多寄存器尋址         ldmia r1!,{r2-r7,r12}

堆棧尋址                stmfd sp!,{r2-r7,lr}

 

相對尋址                beq flag

                         flag:

 

 

ARM彙編特色3:指令後綴

同一指令常常附帶不一樣後綴,編程不一樣的指令。常常使用的後綴有

B(byte)功能不變,操做長度變爲8位

H(half word)功能不變,長度變爲16位

S(signed)功能不變,操做數變爲有符號

如 ldr ldrb ldrh ldrsb ldrsh

S(S標誌)功能不變,影響SPSR標誌位

如mov和movs   movs r0,#0

 

ARM彙編特色4:條件執行後綴

好比

mov     r0, r1   @至關於C語言中的r0 = r1;

moveq r0, r1  @若是eq後綴成立,則直接執行mov r0 r1; 若是eq不成立,則本句代碼直接做廢,至關於沒有,相似C語言 if(eq) {mov r0, r1}。

一、條件後綴是否成立,不是取決去本句代碼,而是取決於這句代碼以前的代碼運行的後果。

二、條件後綴決定了本句代碼是否被執行,而不會影響上一句和下一句代碼是否被執行。

後綴以下:

 

ARM彙編特色5:多級指令流水線

爲增長處理器指令流的速度,ARM使用多級流水線。

取址----解碼----執行,這只是簡單的三級流水線,像S5PV210是用13級流水線,ARM11爲8級。

 

數據處理指令

數據傳輸指令 :mov mvn

mov r0,r1

mov r0,#0xff

mov和mvn用法同樣,區別是mov是原封不動地傳遞,而mvn是按位取反後傳遞。

 

算數指令 add  sub  rsb  adc sbc  rsc

邏輯指令 and  orr   eor  bic

比較指令 cmp cmn tst teq,注意比較指令不用加S(見ARM彙編特色3)就能夠影響cpsr中的標誌位。

乘法指令 mvl mla umull nmlal smull smlal

前導零計數    clz

這些指令詳解,直接百度搜就能知道。

 

cpsr訪問指令

mrs和msr

mrs用來讀psr,msr用來寫psr

cpsr和spsr的區別和聯繫:cpsr是程序狀態寄存器,整個SoC中只有一個;而spsr有五個,分別在5中異常模式下,做用是當從普通模式進入異常模式時,用來保存普通模式下的cpsr的,以再返回普通模式時恢復cpsr。

 

跳轉指令 b  bl bx

b     直接跳轉(就沒打算返回)。

bl    branch and link,跳轉前把返回地址放入lr中,以便返回,以便於函數調用。

bx    跳轉同時切換到ARM模式,通常用於異常處理的跳轉。

 

訪存指令:

ldr str ldm stm swp

單個字/半字/字節訪問 ldr/str

多字批量訪問    ldm/stm

swp    r1,r2,[r0]        @把內存中r0存入r1,再把r2存入r0

 

ARM彙編中的當即數:

合法當即數與非法當即數

ARM指令都是32位,除了指令標記和操做標記外,自己只能附帶不多尾數的當即數。所以當即數有合法與非法之分

合法當即數:通過任意位數的移位後非零部分能夠用8位表示的即爲合法當即數

 

軟終端指令:swi

軟中斷用來實現操做系統中系統調用

相關文章
相關標籤/搜索