Menu
Coddy logo textTech

Imprimindo Duas Strings

Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 40 de 45.

Você já sabe como imprimir uma string. Mas e se você quiser imprimir duas strings separadas? Por exemplo, "Hello " e depois "World!"?

Você simplesmente chama a syscall write duas vezes — uma vez para cada string.

Como funciona:

; Primeira impressão
mov rax, 1
mov rdi, 1
mov rsi, firstMsg
mov rdx, firstLen
syscall

; Segunda impressão
mov rax, 1
mov rdi, 1
mov rsi, secondMsg
mov rdx, secondLen
syscall

Exemplo:

section .data
    first db 'Hello ', 0x0a
    firstLen equ $-first

    second db 'World!', 0x0a
    secondLen equ $-second

section .text
    global _start

_start:
    mov rax, 1
    mov rdi, 1
    mov rsi, first
    mov rdx, firstLen
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, second
    mov rdx, secondLen
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

Saída:

Hello World!

Por que imprimir duas strings em vez de uma?

MotivoExemplo
ReutilizaçãoImprimir a mesma saudação com nomes diferentes
FlexibilidadeImprimir mensagens diferentes com base em condições
OrganizaçãoManter mensagens diferentes separadas na memória

Você pode imprimir quantas strings quiser:

Basta repetir a syscall write para cada string.

challenge icon

Desafio

Você recebeu duas strings: partOne com o valor 'Good' e partTwo com o valor 'bye'. Ambas já possuem uma nova linha ao final.

Escreva o código para imprimir partOne e depois partTwo para que a saída mostre:

Good

bye

A seção de dados e a syscall de saída já foram fornecidas. Você só precisa escrever as duas syscalls de escrita.

Experimente você mesmo

section .data
    partOne db 'Good', 0x0a
    partOneLen equ $-partOne
    partTwo db 'bye', 0x0a
    partTwoLen equ $-partTwo

section .text
    global _start

_start:
    ; TODO: Imprimir partOne usando a syscall write
    ; TODO: Imprimir partTwo usando a syscall write

    mov rax, 60
    mov rdi, 0
    syscall
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