嵌入式学习笔记(5)ARM汇编指令1-ARM汇编特点

指令与伪指令

(1)(汇编)指令是CPU机器指令的助记符,经过汇编后会得到一串1、0组成的机器码,可以由CPU读取执行。

(2)(汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是汇编器环境提供的,目的是用来指导汇编的过程,经过汇编后伪指令最终不会生成机器码。

ARM汇编特点1:LDR/STR架构  

(1)ARM采用RISC架构,CPU本身不能直接读取内存,而需要先将内存中内容加载入CPU的通用寄存器中才能被CPU处理。

(2)ldr(load register)指令将内存内容加载入通用寄存器。

(3)str(store register)指令将寄存器内容存入内存空间中。

(4)ldr/str组合用来实现ARM CPU和内存数据交换。

ARM汇编特点2:8种寻址方式

(1)寄存器寻址      mov r0, r1

(2)立即寻址        mov r0, #0xff00

(3)寄存器移位寻址  mov r0, r1, lsl#3  lsl(逻辑左移,左移一位相当于乘以2,左移三位相当于乘以8)

(4)寄存器间接寻址  ldr r1, [r2] (ld出现了,表示从内存到寄存器加载值)

(5)基址变址寻址    ldr r1, [r2, #4]

(6)多寄存器寻址    ldmia r1!, {r2-r7, r12}

(7)堆栈寻址        stmfd sp!, {r2-r7, lr}

(8)相对寻址        beq flag

                     flag:

ARM汇编特点3: 指令后缀 B H S

    同一指令经常附带不同后缀,变成不同的指令。经常使用的后缀有:

    B(byte)功能不变,操作长度变为8位

    H(half word)功能不变,长度变为16位

    S(signed)功能不变,操作数变为有符号 如 ldr ldrb ldrh ldrsb ldrsh

    S(S标志)功能不变,影响CPSR标志位 如 mov和movs movs r0, #0

ARM汇编特点4:条件后缀    

    EQ/NE:等于/不等于(equal / not equal)

    HS/LO:无符号数高于或等于/无符号数小于(higher or same/lower)

    HI/LS:无符号数高于/无符号数低于或等于(higher/lower or same)

    GE/LT:有符号数大于或等于/有符号数小于(greater or equal/less than)

    GT/LE:有符号数大于/有符号数小于或等于(greater than/less or equal)

    MI/PL:负/非负

    VS/VC:溢出/不溢出(overflow set / overflow clear)

    CS/CC:进位/无进位(carry set / carry clear)

  更多嵌入式学习笔记、实战项目,点击这里即可免费领取

猜你喜欢

转载自blog.csdn.net/m0_70888041/article/details/132567048