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/