Menu
Coddy logo textTech

Imprimiendo dos cadenas

Parte de la sección Fundamentos del Journey de Assembly de Coddy. Lección 40 de 45.

Ya sabes cómo imprimir una cadena. Pero ¿qué pasa si quieres imprimir dos cadenas separadas? Por ejemplo, "Hello " y después "World!"?

Simplemente llamas a la llamada al sistema write dos veces, una por cada cadena.

Cómo funciona:

; Primera impresión
mov rax, 1
mov rdi, 1
mov rsi, firstMsg
mov rdx, firstLen
syscall

; Segunda impresión
mov rax, 1
mov rdi, 1
mov rsi, secondMsg
mov rdx, secondLen
syscall

Ejemplo:

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

Salida:

Hello World!

¿Por qué imprimir dos cadenas en lugar de una?

RazónEjemplo
ReutilizaciónImprime el mismo saludo con nombres diferentes
FlexibilidadImprime mensajes diferentes según las condiciones
OrganizaciónMantén los mensajes diferentes separados en la memoria

Puedes imprimir tantas cadenas como quieras:

Simplemente repite la llamada al sistema write para cada cadena.

challenge icon

Desafío

Se te dan dos cadenas: partOne con el valor 'Good' y partTwo con el valor 'bye'. Ambas ya tienen un salto de línea al final.

Escribe el código para imprimir partOne y después partTwo, de modo que la salida muestre:

Good

bye

El section de datos y el syscall de salida ya están incluidos. Solo necesitas escribir los dos write syscalls.

Pruébalo tú mismo

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

section .text
    global _start

_start:
    ; TODO: Imprime partOne usando la syscall write
    ; TODO: Imprime partTwo usando la syscall write

    mov rax, 60
    mov rdi, 0
    syscall
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Assembly