我们在汇编编程中只使用80H来请求linux内核的服务吗?
linux中其他中断号的效用是什么?
我正在从Windows转换到linux。
答案 0 :(得分:2)
int3
(调试断点)和int 80h
(旧系统调用)是Linux上常用的两个软件中断。设备驱动程序使用硬件中断,但那些可能与您无关。
也就是说,在32位系统上,内核提供映射到每个进程的代码,可以调用它们来执行系统调用,它将自动使用最合适的机制(syscall
,sysenter
或{ {1}})。由于所有64位系统都支持int 80h
指令,因此通常在长模式下使用。请注意,64位系统调用号与32位不同。
最后,您通常不会在linux上使用程序集调用。您要么使用c库,要么完全避免系统调用,因为它们很慢,并且汇编的主要用途之一是速度。当然也有例外,例如与安全相关的代码或编译器/语言开发。