1.汇编概述
2.指令分类学习
3.伪指令
4.协处理访问指令
1.汇编概述
为什么要学习使用汇编程序?
bootloader、kernel的初始化和需要执行效率极高的程序中
ARM汇编分类
1.ARM标准汇编
2.GNU汇编
汇编程序框架
.section.data
<初始化的数据>
.section.bss
<未初始化的数据>
.section.text//标明代码段
.global _start//标明为全局的,以便外部使用
_start:
<汇编代码>
汇编代码
ARM指令分类学习
1。算术和逻辑指令
2.比较指令
3.跳转指令
4.移位指令
5.程序状态字访问指令
6.存储器访问指令
1。算术和逻辑指令:
移位MOV [条件] [S] , //目的(通用寄存器),源头(通用寄存器或者立即数)
dest =op_1
示例:
@mov指令范例
mov r1,#8
mov r2,r1
mov r3,#10
MVN{条件} ,//取反赋值
dest=!op_1
@MVN指令示例
mvn r1,#0b10
mvn r2,#5
mvn r3,r1
减法SUB{条件} ,,//差值,被减数,减数
dest=op_1-op_2
@SUB指令示例
mov r2,#4
sub r1,#r2,#2//立即数不能做被减数
mov r0,#1
sub r3,r1,r0
加法ADD{条件} ,,//和,加数,加数
dest=op_1+op_2
@ADD指令示例