我现在遇到麻烦让NASM工作了。我必须为我在大学里做的主题安装它。我安装了Windows 8.1 Pro 64位。我设法通过下载最新版本来安装NASM。
我们的第一个任务就是将代码复制到Hello World程序并使其运行。这是下面的代码:
bits 16
org 0x100 ; Start the program at offset 100h
jmp main ; Jump to main program
message: db 'Hello World', 0ah, 0dh, '$'
main: mov dx, message ; Start address of message
mov ah, 09 ; Prepare for screen display
int 21h ; DOS interrupt 21h
int 20h ; Terminate program
所以我把它保存为prog1.asm并使用我们的讲师给我们编译的批处理脚本。批处理脚本是这样的:
nasm -f bin %1.asm -o %1.com -l %1.lst
当我在as prog1.asm
中输入cmd时,它会编译而不会出错,但是只要我输入prog1
来运行程序,我就会在cmd窗口中收到以下错误:
This version of C:\Users\########\AppData\Local\nasm\prog1.com is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.
我不知道该怎么做,无论我尝试什么或谷歌,似乎没有什么能给我一个直接的答案或一个适当的解决方案。
答案 0 :(得分:3)
您构建的程序是DOS程序 - 它不能直接在Windows中运行(您可以在Windows XP / 9x中以兼容模式运行它,但当然不能在64位版本的Windows上运行它8.1)。
您需要在某种可以处理DOS程序的模拟器中运行您的程序。可能最受欢迎的是DOSBox。
如果选择DOSBox,则可以使用第三方前端进行配置。或者你可以启动DOSBox,然后在DOSBox的提示符下输入:
mount c: <the directory where prog1.com is located>
c:
prog1
答案 1 :(得分:1)
同样的练习也有同样的问题。 我有Windows 7 64位。 我的解决方案是:
mount c c:\ nasm16
C:\
as prog1
它起作用了! :)