NASM 2 líneas de db (datos inicializados) aparentemente no funcionan
Tengo el siguiente código x86-64, que puedo ejecutar en OSX Yosemite:
global _main
extern _exit
extern _puts
DEFAULT REL
section .data
putsmsg: db 'Puts message...',0
another: db 0
section .text
_main:
push rbp
mov rbp, rsp
; print a string using PUTS
lea rdi, [putsmsg]
call _puts
; call EXIT(0) c function
mov rdi, 0
call _exit
Compilo, enlazo y ejecuto de la siguiente manera (donde la fuente es a.asm):
nasm -f macho64 a.asm ; gcc a.o -o a.bin ;./a.bin
No imprime el mensaje 'Pone mensaje ...', mientras que imprime el mensaje si simplemente comento la línea que contiene la etiqueta 'otro'. ¿Qué está mal aquí? ¿Por qué no imprime la cadena correcta cuando tengo la otra línea de datos inicializada?