linux - 使用系统调用写入 nasm 中的文件

标签 linux assembly nasm

作为作业的一部分,我应该使用系统调用写入文件。一切正常,除非我尝试在 gedit (Linux) 中打开文件。它说它无法识别字符编码。记事本(在 Windows 上)可以很好地打开文件。

为什么这在 Linux 上不起作用?

代码如下:

    section .text

    global _start

        _start:
                    mov EAX, 8
                    mov EBX, filename
                    mov ECX, 0700
                    int 0x80
                    mov EBX, EAX
                    mov EAX, 4
                    mov ECX, text
                    mov EDX, textlen
                    int 0x80
                    mov EAX, 6
                    int 0x80
                    mov eax, 1
                    int 0x80
        
    section .data

        filename db "./output.txt", 0
        text db "hello world", 0
        textlen equ $ - text

-- 更新:在输出字符串固定后添加一个换行符。

最佳答案

将第 3 行更改为: mov ECX,0x0700

关于linux - 使用系统调用写入 nasm 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4526424/

相关文章:

c - 从内联汇编调用函数时针对符号重定位 R_X86_64_PC32

assembly - 如何在 tasm 中在屏幕上打印 SVGA 信息?

x86 - DY 和 DZ 伪指令在 NASM 中如何工作?

python - cPickle.load() 错误

linux - usb_alloc_coherent 和 kzalloc/kmalloc 的区别

winapi - x86 程序集 - 如何使用 Windows API _WriteConsole@4 - masm32 语法

linux - NASM 调用标签未被调用

c - i2c_master_recv 的值从何而来?

linux - 内部共享库

assembly - 子程序如何在不被调用的情况下执行?