Buenas... espero puedan ayudarme
Estoy empezando a programar con Nasm 2.10.90-2.1.2 en OpenSuse 13.1_64.
siguiendo las instrucciones de un libro para el inicial "Hola Mundo" hice lo siguiente y esto fue lo que me apareció:
opensuse@linux-zn23:~/Documentos> nasm -f elf64 primero.asm
opensuse@linux-zn23:~/Documentos> ld -o primero primero.asm
If 'ld' is not a typo you can use command-not-found to lookup the package that contains it, like this:
cnf ld
Contenido del archivo primero.asm
; ----------------------------------------------------------------------------------------
; Writes "Hello, World" to the console using only system calls. Runs on 64-bit Linux only.
; To assemble and run:
;
; nasm -felf64 hello.asm && ld hello.o && ./a.out
; ----------------------------------------------------------------------------------------
global _start
section .text
_start:
; write(1, message, 13)
mov rax, 1 ; system call 1 is write
mov rdi, 1 ; file handle 1 is stdout
mov rsi, message ; address of string to output
mov rdx, 13 ; number of bytes
syscall ; invoke operating system to do the write
; exit(0)
mov eax, 60 ; system call 60 is exit
xor rdi, rdi ; exit code 0
syscall ; invoke operating system to exit
message:
db "Hello, World", 10 ; note the newline at the end