我正在尝试在C和ASM的源代码中移植一些ASM指令。 任何人都可以帮我找到一个指令集并理解ARMv7指令的用法吗? 其实我正在处理中断,所以我想“翻译”:
iretq
int $0x80
int $0x04
我从未在ARMv7 ASM中编程。
谢谢!
答案 0 :(得分:3)
相应的英特尔插播分别为iret
和int
。也就是说,中断处理是高度CPU和平台特定的;翻译命令一对一很可能不会产生一个工作程序。如果你正在开发一个应用程序,你就不应该搞乱中断(即使是80h - 有更好的方法来执行系统调用)。如果你正在开发驱动程序或操作系统内核,你应该系统地学习装配,而不是逐行翻译。
int
命令在理论上可能存在于应用程序代码中 - 它调用中断,这是一种与操作系统交互的异乎寻常但合法的方式。另一方面,iret
命令只应在中断处理程序中使用。它从未在内核空间之外使用过。