0

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

该版本AS的相关信息:

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

4

3 回答 3

3

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

于 2010-01-06T02:53:34.480 回答
2

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

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

于 2009-04-07T08:43:49.643 回答
0

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

于 2009-04-07T04:30:05.777 回答