Assembly: printf druckt keine neue Zeile

Ich habe den folgenden Code, der die Anzahl der an @ übergebenen Parameter ausgib./main. Beachten Sie dasfmt in demrodata Sektion. Ich habe die neue Zeile @ aufgenomm\n, genau wie inC, aber anstatt die neue Zeile zu drucken, wird gedruckt:

Anzahl der Parameter: 1 \ n

Mein Code ist:

;main.asm
GLOBAL main
EXTERN printf

section .rodata:
fmt db "Number of parameters: %d \n", 0 

section .text:

main:

    push ebp
    mov ebp, esp    ;stackframe

    push dword[ebp+8]       ;prepara los parametros para printf
    push fmt
    call printf
    add esp, 2*4

    mov eax, 0      ;return value

    leave           ;desarmado del stack frame
    ret

Ich weiß, dass eine 10 vor der 0 und nach der "Zahl ..." infmt druckt es aus, aber ich willprintf es zu tun. Ich setze den Code mit @ zusamm NASM und verlinke es dann über GCC um meine ausführbare Datei zu erstellen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage