assembly - ARM指令SWI和SVC完全相同吗?

标签 assembly arm embedded instruction-set

ARM 程序集具有用于进入“管理程序模式”的 SWI 和 SVC 指令。

令我困惑的是,为什么有两个? Here据说SVC的前身是SWI。这是否意味着他们基本上改变了助记符?它们是一样的吗?我可以互换使用它们吗?其中一个是否存在于架构之前,而另一个则存在于架构之后?

最佳答案

是的,SWI和SVC是同一件事,只是名称改变了。以前,SVC 指令称为 SWI,软件中断。

SVC(和 SWI)的操作码部分是用户定义的(位 0-23 是用户定义的,就像 SVC 处理程序的参数)。位 24-27 是 b1111,这 4 位使 CPU 认识到操作码是 SVC(或 SWI)。 请参阅ARM Information Center了解更多详情。

关于assembly - ARM指令SWI和SVC完全相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8459279/

相关文章:

ios - 在 iOS 上将 x86 asm 代码转换为 arm 代码

c++ - 内联汇编,输出指令

assembly - itte 臂组件

c - 将嵌入式系统功能分离为 RTOS 任务

c - 电机PI调节器结构代号

assembly - 将标志寄存器用作 bool 返回值是否被认为是不好的做法?

azure - 通过 Powershell Runbook 从 ARM 模板部署 Azure VM,无需下载模板

android - Android NDK 代码中的 SIGILL

Contiki:广播整数数组

assembly - 在汇编中声明和定义数组和矩阵?