【问题标题】:Where can I find an interrupt list for i486-linux-gnu instruction set? [closed]在哪里可以找到 i486-linux-gnu 指令集的中断列表? [关闭]
【发布时间】:2009-04-07 03:33:28
【问题描述】:

我正在为我在学校的高级项目开发一个编译器,并且我正在使用 AS (GNU Assembler) 进行汇编。我的所有测试都相当成功,但我所见过的中断列表似乎都无法正常工作或与我的测试代码匹配。

此版本AS的相关信息:

GNU 汇编器 2.17 Debian GNU/Linux 版权所有 2005 Free Software Foundation, Inc. 该程序是免费软件;您可以根据以下条款重新分发它 GNU 通用公共许可证。该程序绝对没有任何保证。 这个汇编器是为 `i486-linux-gnu' 的目标配置的。

【问题讨论】:

  • 为什么需要处理中断?你不是说系统调用列表,而不是中断列表吗?

标签: linux assembly gnu compiler-construction gnu-assembler


【解决方案1】:

在 linux 中,您使用一个中断:80h。该中断对应的系统调用可以在this table中找到。

【讨论】:

    【解决方案2】:

    Linux 不像 DOS 那样使用中断来进行系统调用。它使用与体系结构相关的方法进行系统调用,在 x86 上可以是 int 0x80,但现代 (Pentium+) CPU 应该使用 SYSENTER 指令。不使用其他软件中断。

    通常您不必担心这一点,因为即使在汇编语言中,您可能仍想使用包含这些内容的 C 库。

    【讨论】:

      【解决方案3】:

      恕我直言,连接中断的方式是特定于硬件的。查看 Linux 内核如何处理目标硬件上的中断可能具有教育意义。

      【讨论】:

        猜你喜欢
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        • 2015-10-26
        • 2012-06-27
        • 1970-01-01
        • 2010-12-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多