; Arquivo : sections.asm ; Descrição : Demonstra a definição das seções .rodata, .data, .bss e .text ; Montagem : nasm -f elf64 sections.asm ; Link-edição: ld sections.o -o sections section .rodata msg db "Eu sou imutável!", 0x0a len equ $ - msg section .data contador dq 0 ; preenche 8 bytes (qword) com 0x00 em 'contador' section .bss buffer resb 32 ; reserva 32 bytes no endereço 'buffer' section .text global _start ; ponto de entrada do programa _start: mov rax, 1 ; syscall: write mov rdi, 1 ; fd 1 = stdout mov rsi, msg ; endereço da mensagem mov rdx, len ; tamanho da mensagem syscall mov rax, [contador] ; copia o dado no endereço 'contador' para rax inc rax ; incrementa em 1 o valor em rax mov [contador], rax ; copia o valor em rax para o endereço 'contador' mov rax, 60 ; syscall: exit xor rdi, rdi ; estado de término = 0 syscall