【LV12 Day9 专用指令】

状态寄存器传送指令
@读 CPSR
MRS R1,CPSR
@写CPSR
MSR CPSR,#0X10

软中断指令
软中断跳转到异常向量表后不能直接写中断程序,要写一条跳转指令跳转到处理程序
@异常向量表
B .MAIN
B .
B .SWI_HANDLER ----地址0x00000008
B .
B .
B .
B .
B .
@应用程序
MAIN:
MOV SP,#0X00000040
MSR CPSR,#0X10
MOV R1,#1
MOV R2,#2
SWI #1 软中断指令,PC值变为0x00000008
ADD R3,R2,R1
B STOP
@异常处理程序
SWI_HANDLER:
STMFD SP!,{R1,R2,LR} @压栈保护现场
MOV R1,#10
MOV R2,#20
SUB R3,R2,R1
LDMFD SP!,{R1,R2,PC}^ @出栈,小三角实现SPSR的值复制给CPSR

协处理器指令
协处理器运算指令
CDP
协处理器存储器访问指令
STC 将协处理器中的数据存储到存储器
LDC 将存储器中的数据读取到协处理器中
协处理器寄存器传送指令
MRC 将协处理器中寄存器的数据传送到ARM处理器中的寄存器
MCR 将ARM处理器中寄存器的数据传送到协处理器中的寄存器

伪指令
本身不是指令,编译器可以将其替换为若干条指令
@空指令
NOP
@指令
LDR R1,[R2]

@伪指令
LDR R1,0X12345678 @可以将任意一个32位数据放入寄存器

@将STOP的地址写入R1寄存器
LDR R1,=STOP

@将STOP的地址中的内容写入R1寄存器
LDR R1,STOP

你可能感兴趣的:(LV12,ARM体系结构与接口技术,arm开发,linux,笔记)