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

软中断指令

  • 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 // 初始化异常向量表地址
相关推荐
奔跑的架构师19 小时前
[A-48]ARMv9/v8-电源状态管理机制(PSCI协调机制)
android·linux·arm开发·arm
凉、介1 天前
KVM + QEMU 虚拟化
笔记·学习·嵌入式·arm·qemu·虚拟化·kvm
secondyoung1 天前
Cortex-R52学习:存储系统
arm开发·单片机·学习·arm
阿米亚波19 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
ThornArmor19 天前
【工具篇·番外】跨语言生态的主权回收:基于 ISA 说明书的 4-bit 双向汇编系统全线封顶
c语言·开发语言·汇编·c++·重构·架构
是星辰吖~20 天前
WIN32_线程(下)
汇编
是星辰吖~20 天前
WIN32_线程(上)
汇编
AI科技星20 天前
数术工坊 · 第四卷 橡皮泥江湖(拓扑学)【完整定稿】
c语言·开发语言·汇编·electron·概率论·拓扑学
iCxhust21 天前
C# 生成命令行程序 将hex格式烧录程序转换成bin烧录格式
开发语言·汇编·单片机·嵌入式硬件·c#·微机原理
iCxhust22 天前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理