12.9 专用指令

目录

         状态寄存器传送指令

读CPSR

写CPSR

软中断指令

协处理器指令

协处理器数据运算指令

协处理器存储器访问指令

协处理器寄存器传送指令

伪指令

@空指令

@LDR

指令

伪指令


状态寄存器传送指令

专门用来读写CPSR寄存器的指令

读CPSR

MRS R1,CPSR

R1 = CPSR

写CPSR

MSR CPSR, #0x10

在USER模式下不能修改CPSR,非特权模式

MSR CPSR ,#0xD3

软中断指令

异常向量表中SWI就是软中断,在SWI中写入B指令跳转到用户写的异常的地址,过程参ARM异常响应注意查看CPSR寄存器的状态

协处理器指令

ARM是一个通用的CPU核,只支持一些通用的运算指令,如加减乘

当遇到特殊的运算,如图像处理等,就需要用到协处理器来处理

协处理器种类繁多

ARM最多可以加16个协处理器

嵌入式常见协处理器

FPU:计算浮点型数据的处理器

CP15:帮助ARM对存储器进行管理,如高速缓存、异常向量表、控制MMU(存储器管理单元,管理物理内存与虚拟内存间的关系)

协处理器数据运算指令

CDP

协处理器存储器访问指令

STC 将协处理器中的数据存储到存储器中

LDC 将存储器中的数据读取到协处理器中

协处理器寄存器传送指令

MRC 将协处理器中寄存器的数据传送到ARM处理器中的寄存器

MCR 将ARM处理器寄存器中的数据传送到协处理器中的寄存器

伪指令

本身不是指令,编译器 可以将其替换成若干条指令

@空指令

NOP

@LDR

根据格式的不同可以作为指令也可以作为伪指令

指令

LDR R1, [R2]

将R2地址中的数据,读取到R1寄存器

伪指令

LDR R1, =0x12345678

@R1=0x12345678,可以将任意一个32位的数据放入寄存器中

LDR R1, =STOP

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

LDR R1, STOP

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

你可能感兴趣的:(arm开发)