nasm 中的系统调用不工作

System call in nasm not working

我尝试编写以下代码,使用 int 0x80 打印数字 5,但它不打印任何内容。

segment .bss
        num1 resb 1

section .text
        global _start
_start:
        mov dword [num1],5
        add [num1],byte '0'
        mov ecx, dword [num1]
        mov eax, 4
        mov ebx, 1
        mov edx, 1
        int 0x80

        mov eax, 1
        int 0x80

系统调用 4 期望 ecx 包含指向以 NUL 结尾的字符串的指针。

所以你应该使用 mov ecx, num1.

而不是 mov ecx, dword [num1]