我正在编写一个基本的汇编程序,只是使用内核中断
int 0x80
启动并立即退出。我的当前代码如下:/* Simple exit via kern-interrupt */
.globl start
start:
pushl $0x0
movl $0x1, %eax
subl $4, %esp
int $0x80
使用组装
as -arch i386 <file>.s
执行时出现一行错误提示:
Illegal instruction
这太奇怪了,即使把所有内容都注释掉,结果仍然是 "非法指令",尽管根本没有任何指令。我是否错过了一个 "链接" 步骤,尽管没有其他文件需要链接?是的,我错过了
编辑:请允许我重新表达我的问题,为什么在没有库或任何需要链接的情况下还需要链接?
hexdump
中看到的文件大小几乎翻了一倍。前十二个字节是相同的。 - Hawkenreadelf
这样的程序可以解码它。 - paxdiablo