汇编之软中断指令和协处理指令

软中断指令

  • 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 // 初始化异常向量表地址
相关推荐
惶了个恐14 小时前
嵌入式硬件第九弹——ARM(5)
arm开发·单片机·嵌入式硬件·arm·硬件工程
Lzh编程小栈2 天前
数据结构与算法之队列深度解析:循环队列+C 语言硬核实现 + 面试考点全梳理
c语言·开发语言·汇编·数据结构·后端·算法·面试
cch89183 天前
汇编与C语言:底层对话VS高效指挥
c语言·开发语言·汇编
jwn9994 天前
PHP vs 汇编:编程语言的两极对决
开发语言·汇编·php
cch89184 天前
汇编vs易语言:底层与中文编程终极对决
汇编
cch89185 天前
汇编VS高级语言:从硬件操控到高效开发
汇编
cch89185 天前
汇编与Java:底层与高层的编程对决
java·开发语言·汇编
cch89185 天前
汇编 vs Python:编程世界的两极对决
开发语言·汇编·python
cch89185 天前
汇编与Go:底层到高层的编程差异
java·汇编·golang
山峰哥5 天前
告别“点点点”:AI 如何重构我们的测试体系与质量防线
服务器·汇编·数据库·人工智能·性能优化·重构