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

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

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

我正在从Windows转换到linux.

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

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

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

点赞