【问题标题】:With the x86 chips, are there any INT instructions other than with 0x80?x86芯片除了0x80还有其他INT指令吗?
【发布时间】:2011-06-12 21:31:05
【问题描述】:

我知道 Linux 提供 int 0x80 用于陷入系统调用,但还有其他方法吗?它们的用途是什么?

【问题讨论】:

  • 观看者,在哪个平台上?而这与 C#、C++、C 或 gcc 有什么关系?

标签: x86 int intel system-calls


【解决方案1】:

这是一个相当广泛的问题,但是是的,x86 芯片允许各种软件中断。

Linux 使用int 0x80 作为其系统调用机制,但您应该注意,更高版本的内核可以使用SYSENTER 而不是int 0x80,因为它在某些情况下效率更高。

在实模式下,中断向量表位于内存中的特定位置。如果您想详细了解可以执行的操作,请在 Google 上搜索“Ralf Brown”,他维护着近乎传奇的“中断列表”。

对于保护模式,可以使用特殊的处理器寄存器 IDTR 找到它(IDT 是中断描述符表)。

在这两种情况下,您都可以使用 256 次中断。

【讨论】:

    猜你喜欢
    • 2011-10-23
    • 2011-09-06
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多