软中断指令
- ARM中异常中断指令主要有两条:
- SVC(早期版本中是SWI)
- BKPT , 用于产生软件断点,用于调试程序使用
z80
复制代码
svc{cond} #<immed_24>
z80
复制代码
svc #1 @该指令的执行会使得ARM核收到一个软中断异常
协处理器指令
- ARM架构通过支持协处理器来扩展处理器的功能。ARM架构的处理器支持最多16个协处理器,通常称为CP0~CP15
- CP15,提供系统控制功能,主要用于配置MMU、TLB和Cache、异常向量表的地址设置
z80
复制代码
MRC{cond} coproc, opc1, Rd, CRn, CRm{, opc2} #mov reg cooperation 协处理器寄存器内容传输到寄存器
MCR{cond} coproc, opc1, Rt, CRn, CRm{, opc2} #mov cooperation reg 寄存器内容传输到协处理器寄存器
cond, 条件码
coproc, 协处理器 cp1 cp2 ... cp15
opc1, 协处理器要执行的操作码,取指范围为0~7
Rd, 通用寄存器
CRn, 协处理器中的寄存器
CRm, 附加的协处理器寄存器
opc2, 有可能出现的第二个操作码
z80
复制代码
LDR R1, =secure_vector_table_base_address
MCR P15, 0, R1, C12, C0, 0 // 初始化异常向量表地址