哪个是非法指令?

时间:2013-11-13 03:18:17

标签: assembly x86 64-bit nasm

好吧,我完全从第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目录)。我希望我不会因此而为自己制作一个完整的标题,但这真的令我感到困惑。 提前谢谢!

1 个答案:

答案 0 :(得分:2)

int 0x80 ;call kernel

你在Windows上 - 甚至是。您在此指令中使用的地址(0x80)是特定于Linux / Unix的。

http://en.wikipedia.org/wiki/INT_(x86_instruction)