D2 ARM指令

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第八位

猜你喜欢

转载自www.cnblogs.com/device/p/11256976.html
d2