Montaje: printf no imprime nueva línea
Tengo el siguiente código que imprime el número de parámetros pasados a./main
. Observe lafmt
en elrodata
sección. He incluido la nueva linea\n
como enC, pero en lugar de imprimir la nueva línea, imprime:
Número de parámetros: 1 \ n
Mi código es:
;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
Sé que incluir un 10 antes del 0 y después del "Número ..." enfmt
lo imprimiré, pero quieroprintf
para hacerlo. Ensamblo el código conNASM y luego vincularlo a través deCCG para crear mi ejecutable