4、ARM彙編指令詳解

ARM彙編中的註釋是;(分號)編程

第一個彙編代碼:spa

    AREA asm, CODE, READONLY ;TAB開頭的僞指令,AREA表示定義代碼段/數據段區域的開始,後面跟着的名稱(asm)會進入符號表參與連接
    ENTRY ;表示指定彙編程序的入口,最多隻能寫一個,也能夠不寫
START ;用於程序跳轉的標號,必須頂格寫
    MOV R0, #0X1 ;MOV指令
    MOV R1, R0
    MOV R2, #0X2
    ADD R3, R1, R2
    SUB R4, R3, R1 ;R3 - R1=>R4
    SUBS R0, R0, R0
    MVN R5, #0X0 ;MVN是數據取反,表示將0X0取反賦給R5寄存器
    ADC R5, R1, R3 ;ADC是帶進位的加法,表示R1+R3+c標誌位=>R5
    AND R3, R1, R2 ;AND表示位與,R1&R2=>R3
    ORR R6, R1, R2 ;ORR表示位或
    ;EOR表示異或
    CMP R3, R1 ;CMP做用是比較兩個數的大小,並修改CPSR相關標誌位
    BIC R0, R0, #0X1 ;位清零指令,表示將R0的最低位清零賦給R0
    MOV R6, #0X9000
    STR R5, [R6] ;將R5的值store到R6表示的內存中
    LDR R7, [R6] ;從R6所表示的內存中取值給R7
    STR R5, [R6, #0X4] ;[R6, #0X4]表示地址加偏移0X4
    MRS R0, CPSR ;MRS表示把狀態寄存器的值取出來給通用寄存器
    BIC R0, R0, #0XF ;把R0最低四位清零
    MSR CPSR_cxsf, R0 ;MSR表示將通用寄存器的值取出來給狀態寄存器
    ;BL BBB 表示跳轉到BBB上,並R14保存了返回地址
    B . ;B是跳轉指令,.(點)表示原地跳轉,不保存返回地址
    END ;表示彙編程序的結束,必需要寫,否則程序就跑飛了
相關文章
相關標籤/搜索