1.2.15、ARM汇编指令集:简介
2016-11-21 16:37
246 查看
两个概念:指令与伪指令
(汇编)指令是CPU机器指令的助记符,经过编译后会得到一串10组成的机器码,可以由CPU读取执行(汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码
两种不同风格的ARM指令
ARM官方的ARM汇编风格:指令一般用大写、Windows中IDE开发环境(如ADS、MDK等)常用。如: LDR R0, [R1]GNU风格的ARM汇编:指令一般用小写字母、linux中常用。如:ldr r0, [r1]
我采用GNU风格的ARM汇编
ARM汇编特点1:LDR/STR架构
ARM采用RISC架构,CPU本身不能直接读取内存,而需要先将内存中内容加载入CPU中通用寄存器中才能被CPU处理ldr(load register)指令将内存内容加载入通用寄存器
str(store register)指令将寄存器内容存入内存空间中
ldr/str组合用来实现 ARM CPU和内存数据交换
ARM汇编特点2:8种寻址方式
寄存器寻址:mov r1, r2
立即寻址:
mov r0, #0xFF00
寄存器移位寻址:
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标志)功能不变,影响CPSR标志位
例如:
movs movs r0, #0 ;影响CPSR的Z位
ARM汇编特点4:条件执行后缀
如下图所示:ARM汇编特点5:多级指令流水线
为增加处理器指令流的速度,ARM使用多级流水线;下图为3级流水线工作原理示意图(S5PV210使用13级流水线,ARM11为8级):
允许多个操作同时处理,而非顺序执行
PC指向正被取指的指令,而非正在执行的指令
相关文章推荐
- 1.20.ARM汇编指令集8之存储器访问指令(LDM和STM & SWP)
- 转载_Linux下ARM汇编及调试手段简介
- ARM汇编简介
- iOS安全攻防(十一)arm汇编之寄存器简介
- ARM GNU 汇编伪指令简介
- 2010-12-01 12:57 【转】ARM GNU 汇编伪指令简介
- ARM汇编指令集[转]
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(Makefile 简介)
- ARM GNU 汇编伪指令简介
- ARM GNU 汇编伪指令简介
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(ARM汇编简介)
- ARM汇编指令集5
- ARM汇编指令集[转]
- Arm汇编学习笔记(前序)——ARM处理器简介
- tiny6410裸机实验第1章--------------ARM汇编和编程基础(ATPCS 简介)
- 1.2.17、ARM汇编指令集:数据传输和跳转指令详解
- ARM GNU 汇编伪指令简介
- 1.2.18、ARM汇编指令集:协处理器和协处理器指令详解
- ARM汇编指令集1--需要的基础知识
- 1.2.19、ARM汇编指令集:ldm/stm与栈的处理