Menu
Coddy logo textTech

Juntando Tudo

Parte da seção Fundamentos do Journey de Assembly da Coddy. Lição 39 de 45.

Você aprendeu as quatro partes da chamada de sistema write:

RegistradorO que ele armazenaValor para saída na tela
raxNúmero da chamada de sistema1 (write)
rdiDescritor de arquivo1 (stdout)
rsiEndereço do bufferEndereço da sua string
rdxContagem de bytesComprimento da sua string

Agora é hora de juntar tudo.

O padrão completo da syscall write:

mov rax, 1          ; número da syscall para write
mov rdi, 1          ; descritor de arquivo (stdout)
mov rsi, msg        ; endereço da string
mov rdx, msgLen     ; número de bytes a imprimir
syscall             ; pede ao SO para imprimir

Um programa completo e funcional:

section .data
    msg db 'Hello, World!', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msgLen
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

O que este programa faz:

EtapaO que acontece
1Imprime "Hello, World!" na tela
2Move para uma nova linha
3Encerra corretamente com o código 0

A ordem importa:

Você deve configurar os registradores antes de executar syscall. A ordem das instruções mov não importa, desde que todas as quatro estejam configuradas antes de syscall.

challenge icon

Desafio

Escreva um programa completo que imprima a mensagem "Assembly is fun" seguida por uma nova linha, e então saia de forma limpa.

A string e seu comprimento já estão definidos. Você só precisa escrever o código dentro de _start:.

Experimente você mesmo

section .data
    msg db 'Assembly is fun', 0x0a
    msgLen equ $ - msg

section .text
    global _start

_start:
    ; TODO: Configurar e chamar a syscall write
    ; Use rax=1, rdi=1, rsi=msg, rdx=msgLen

    ; TODO: Sair de forma limpa com o código 0
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Assembly