四、ARM汇编指令详解

ARM汇编中的注释是;(分号)

第一个汇编代码:

    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 ;表示汇编程序的结束,必须要写,不然程序就跑飞了

猜你喜欢

转载自www.cnblogs.com/zch-blog/p/9355108.html