int 0x80是linux汇编编程中唯一使用的中断号吗?

时间:2013-10-19 22:50:18

标签: linux assembly int

我们在汇编编程中只使用80H来请求linux内核的服务吗?

linux中其他中断号的效用是什么?

我正在从Windows转换到linux。

1 个答案:

答案 0 :(得分:2)

int3(调试断点)和int 80h(旧系统调用)是Linux上常用的两个软件中断。设备驱动程序使用硬件中断,但那些可能与您无关。

也就是说,在32位系统上,内核提供映射到每个进程的代码,可以调用它们来执行系统调用,它将自动使用最合适的机制(syscallsysenter或{ {1}})。由于所有64位系统都支持int 80h指令,因此通常在长模式下使用。请注意,64位系统调用号与32位不同。

最后,您通常不会在linux上使用程序集调用。您要么使用c库,要么完全避免系统调用,因为它们很慢,并且汇编的主要用途之一是速度。当然也有例外,例如与安全相关的代码或编译器/语言开发。

相关问题