Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 执行汇编代码时控制台上的垃圾字符_Assembly_X86_Nasm - Fatal编程技术网

Assembly 执行汇编代码时控制台上的垃圾字符

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。 当它运行时,控制台上的输出将显示

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输出时,我不断收到错误提示:

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
格式。其他可执行格式有节(或段)。(请参阅的一节。)