1,汇编语言
2,a指令:数据处理:MOV R1, #1 R1=1; MOV R2,R1 R2=R1;
3,( MVN R3, #0x000000FF 实际存放为0xFFFFFF00 )
4,跳转指令(B):->修改PC;
Load/Store指令:
状态寄存器传送指令:
5,软中断(SWI)指令:
6,协处理指令(CP15):
7,b伪操作;
c伪指令
8,汇编注释用分号(;)
ADDS (C位置1,需加S)
ADC R3,R1,R2----(进位C置1 R3=R1+R2+C)
NZCV N负号标记 Z零标记 C加法进位置1 减法借位置0
跳转指令(B\BL)
9,ARM指令的条件执行
BEQ 上条语句比较相等,Z=1 进行跳转B
BNE 上条语句比较不相等, Z=0 进行跳转B
10,Load 数据从内存加载到寄存器
Store 数据从寄存器存放到内存STR R1------>R2
STM 可挂后缀有{IA,IB,DA,DB}
前索引 STR R1, [R2,#1] R1存放在[R2+1]地址中
后索引 STR R1,[R2].#4 RI存放在R2中,让后R2=R2+4
前后索引 STR R1,[R2,#4]! R1存放在[R2+4]地址中,然后R2=R2+4
批量寄存器内存访问 STM
STM R11<---{R1-R5} 低地址对应小编号,批量寄存器内存访问可索引
**重点:
STM 可挂后缀有{IA,IB,DA,DB} increa afte increase befor discrease after
STMIA R11,{R1-R5}
11,栈的本质时一段内存,存放临时数据 sp指向栈
空增EA,空减ED,满增FA,**满减FD
初始化栈 MOV SP, #0x40000020
进入子函数压栈 STMFD SP!,{R1,R2} 备注:!自动索引功能,自增or自减
返回主函数出栈 LDMFD SP!,{R1,R2}
12,BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。
13,一条ARM指令32位
14,MRS 读CPSR
MSR R1,CPSR 一般修改CPSR第八位