热门搜索 :
考研考公
您的当前位置:首页正文

13. ARM 汇编指令集1

来源:东饰资讯网
两个概念:指令与伪指令
  • (汇编)指令是cpu机器指令的助记符,经过编译后得到一串10组成的机器码,可以由cpu读取执行
  • (汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码
两种不同风格的ARM指令
  • ARM官方的ARM 风格:指令一般用大写、Windows的IDE 开发环境(如ADS、MDK 等)常用如:LDR R0 [R1]
  • GUN 风格的ARM汇编指令一般用小写字母 、linux中常用:如:ldr r0,[r1]
ARM 汇编特点1: ldr/str架构
  • ARM 采用RISC价格,CPU本身不能直接读取内存,而需要先将内存中内容加载入CPU 中通用寄存器中才能被CPU处理
  • ldr(lload register)指令将内存内容加载入通用寄存器
  • str(store register)指令将寄存器内容存入内存空间中
  • ldr/str 组合用来实现ARM CPU和内存数据交换
ARM汇编特点2:8种寻址方式
  • 寄存器寻址: mov r1 , r2
  • 立即寻址: mov r0, #0xFF00
  • 寄存器移位寻址 mov r0, lsl #3
  • 寄存器间接寻址 ldr r1, [r2]
  • 基址变址寻址 ldr r1, [r2, #4]
  • 多寄存器寻址 ldmia r1!, {r2-r7, lr}
  • 堆栈寻址 stmfd sp!, {r2-r7, lr}
  • 相对寻址 beq flag
ARM汇编特点:指令后缀
  • 同一指令经常附带不同后缀,变成不同的指令,经常使用的后缀有:
  • B(byte)功能不变,操作长度变为8位
  • H(half word)功能不变,长度变为16位
  • S(Signed)功能不变,操作数变为有符号如ldr ldrb ldrsb ldrsh
  • S(S标志) 功能不变,影响CPSR标志位 如mov和movs movs r0, #0
ARM 汇编特点 : 多级指令流水线
  • 为增加处理器指令流的速度,arm使用多级流水线,下图为3级流水线工作原理示意图(S5PV210使用13级流水线,arm11为8级)
  • 允许多个操作同时处理,而非顺序执行


Top