0

我正在尝试学习汇编程序,但本教程遇到了问题http://www.tutorialspoint.com/assembly_programming/assembly_file_management.htm

除了写出文件时,它工作得很好而且很漂亮。取而代之的是myfile.txt,它被命名为myfile.txtWelcome to Tutorials PointWritten to file?

我似乎无法找出原因。我从教程中删除了源代码,它做了同样的事情。

有人能告诉我为什么吗?


我正在使用 nasm 2.12.02。我也在 yasm 1.2.0 上尝试过,所以我很确定这是汇编代码造成的。

我正在建造和运行OpenSUSE Linux 3.16.7-35-default #1 SMP Sun Feb 7 17:32:21 UTC 2016 (832c776) x86_64 x86_64 x86_64 GNU/Linux

4

1 回答 1

3

您可能遗漏了一个, 0(零字节)来终止.rodata在您放置用于文件名和文件数据的字符串常量的部分中的字符串。

接受 args 的Linux 系统调用(如open(2)char*接受以零结尾的 C 样式字符串,而不是接受字符串长度。

于 2016-08-01T00:13:23.347 回答