Assembly 执行汇编代码时控制台上的垃圾字符
x86汇编编程初学者。我有一个简单的asm文件,我使用nasm版本汇编,nasm版本2.10rc6于2011年6月6日编译,适用于windows(我的windows是Windowa-7 64位)。NASM从(NASM-2.10rc6-win32.zip)下载 然后,我使用命令- nasm-f bin hello.asm-o hello.com 然后,我使用Dosbox(适用于64位操作系统Windows-7的Dos仿真器)运行生成的可执行文件hello.com。 当它运行时,控制台上的输出将显示我的字符串“Hello assembly”加上一些垃圾字符/控制字符,如下所示: 原因何在?。密码有什么问题吗 我需要做什么来解决这个问题 编辑:当我试图给nasm一个选项-f以生成特定类型的可执行输出,例如Win32或Win64输出时,我不断收到错误提示:Assembly 执行汇编代码时控制台上的垃圾字符,assembly,x86,nasm,Assembly,X86,Nasm,x86汇编编程初学者。我有一个简单的asm文件,我使用nasm版本汇编,nasm版本2.10rc6于2011年6月6日编译,适用于windows(我的windows是Windowa-7 64位)。NASM从(NASM-2.10rc6-win32.zip)下载 然后,我使用命令- nasm-f bin hello.asm-o hello.com 然后,我使用Dosbox(适用于64位操作系统Windows-7的Dos仿真器)运行生成的可执行文件hello.com。 当它运行时,控制台上的输出将显示
nasm -f win64 hello.asm -o hello.com
hello.asm:1: error: parser: instruction expected
它期待什么?如何使用nasm生成win32/win64可执行文件?或者任何其他可执行文件,如elf32/coff,nasm说它支持它?问题是:
ORG 100
应该是:
ORG 100h
二进制文件是一个.COM
文件,因此将以100h
的速度加载和运行;该错误意味着汇编程序为msg
计算的地址将比应该的地址早156字节,因此会产生额外的垃圾
ORG
指令仅适用于bin
格式。其他可执行格式有节(或段)。(请参见章节。)问题在于:
ORG 100
应该是:
ORG 100h
二进制文件是一个.COM
文件,因此将以100h
的速度加载和运行;该错误意味着汇编程序为msg
计算的地址将比应该的地址早156字节,因此会产生额外的垃圾
ORG
指令仅适用于bin
格式。其他可执行格式有节(或段)。(请参阅的一节。)