好吧,我完全从第17页开始复制了这段代码
http://www.tutorialspoint.com/assembly_programming/assembly_tutorial.pdf
但是当我用NASM编译它时(在Windows上,即使在pdf中他们使用linux)
使用命令nasm -f elf test.asm -o test.com
,并运行它,它向我吐出:
16 bit MS-DOS Subsystem dir The NTVDM CPU has encountered an illegal instruction. CS:0000 IP:0077 OP:fo 37 05 0a 02 Choose 'Close' to terminate the application.
其中dir
是我编译和运行程序的位置(nasm目录)。我希望我不会因此而为自己制作一个完整的标题,但这真的令我感到困惑。
提前谢谢!
答案 0 :(得分:2)
int 0x80 ;call kernel
你在Windows上 - 甚至是。您在此指令中使用的地址(0x80
)是特定于Linux / Unix的。