程序集文件管理期间出错

Error during File Management in Assembly

我正在尝试用汇编 (NASM 2, Linux) 编写一个简单的代码来创建一个文本文件并向其中写入一些内容。但是在 运行 下面的代码中,我发现文件名并不像我在代码中提到的那样,它与文件的内容连接在一起。即

它生成一个名为 file.txtHello World 的文件,其中 Hello World 是文件的内容。

section .data
    file_name db 'file.txt'

    msg       db 'Hello World', 0xa
    len equ $-msg

section .bss
    fd_out resb 1

section .text
    global _start           ;must be declared for using gcc
_start:                     ;tell linker entry point

    ;Create the file
    mov ebx, file_name
    mov ecx, 777            ;(read write execute = 111 = 7) by all (owner, group, and others)
    mov eax, 8              ;system call number (sys_creat)
    int 0x80                ;call kernel
    mov [fd_out], byte eax

    ;Write into the file
    mov ebx, [fd_out]       ;file descriptor 
    mov ecx, msg            ;message to write
    mov edx, len            ;number of bytes
    mov eax, 4              ;system call number (sys_write)
    int 0x80                ;call kernel

    ;Close the file
    mov eax, 6              ;system call number (sys_close)
    int 0x80                ;call kernel

    mov eax,1               ;System call number (sys_exit)
    int 0x80                ;Call kernel

我不知道,为什么会这样

文件名必须以零结尾:

file_name db 'file.txt',0