Gente esse tutorial, vai ensinar a vocês como os anciães da programação em Assembly rodaram seu primeiro “Hello World” a lá processador. O Assembler usado é NASM vulgo NETWIDE ASSEMBLER, que possui bastante portabilidade nos SO’s, os comandos no final do artigo são apenas para Linux. A sintaxe usada é INTEL x64.

 

bits 64     
section    .rodata        // .rodata = apenas leitura, não irá poder alterá-lo 
msg:  db     "Olá Assembly", 10
msg_len equ  $ - msg // $ é o endereço após o último byte, $ - msg retornará o tamanho da string automaticamente
section .text // define quais seriam os parâmetros 
global  _start 
_start: // diz a entrada para o "linker"
mov      eax, 1 // syscall
mov    edi,eax // cópia 
lea      rsi,[msg]  // lea = EFFECTIVE ADDRESS->RSI como ponteiro
mov     edx,msg_len
// equivale a exit(0);
syscall
mov   eax, 60
xor     edi,edi 
syscall  

 

 

 

 

 

 

 

 

 

 

Este é o código completo.

 

Para a compilação  do código acima usamos:

nasm -f elf64 exemplo.asm -o exemplo.o

ld -o exemplo exemplo.o

Por ora, será só isso mas logo logo estaremos assemblando mais coisas.

Referências  :https://assemblingknowledge.blogspot.com.br/