forked from blau_araujo/pbn
conteúdo da aula 3
This commit is contained in:
parent
95ad4cc85b
commit
9780039c11
2 changed files with 434 additions and 45 deletions
32
curso/exemplos/03/sections.asm
Normal file
32
curso/exemplos/03/sections.asm
Normal file
|
@ -0,0 +1,32 @@
|
|||
; 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
|
Loading…
Add table
Add a link
Reference in a new issue