GNU/Linux xterm-256color bash 141 views

// ****************************************************************************
// * Lenguajes de Interfaz en TECNM Campus ITT
// * Nombre del archivo: practica.s
// * Descripción: Programa que dibuja un corazoncito
// * Autor: [America Fernanda Nevarez de la Cruz]
// * Fecha: [2025-04-08]
// * Plataforma: Raspberry Pi OS (64 bits)
// * Demostración:  [https://asciinema.org/a/Vb6Z4fmDzYATpVSGQ3hZBg7t5]
// ****************************************************************************

// ****************************************************************************
// * Codigo equivalente en Python
// *corazon = [
// *  "  **   **",
// *  " **** ****", 
// *  " *********",
// *  "  *******",
// *  "   *****",
// *  "    ***",
// *  "     *"
// *]
// *
// *corazon.each { |linea| puts linea }
// ****************************************************************************

.section .data
line1: .ascii "  **   **\n"
len1 = . - line1

line2: .ascii " **** ****\n"
len2 = . - line2

line3: .ascii " *********\n"
len3 = . - line3

line4: .ascii "  *******\n"
len4 = . - line4

line5: .ascii "   *****\n"
len5 = . - line5

line6: .ascii "    ***\n"
len6 = . - line6

line7: .ascii "     *\n"
len7 = . - line7

.section .text
.global _start

_start:
    ldr x0, =line1
    mov x1, #len1
    bl print_msg

    ldr x0, =line2
    mov x1, #len2
    bl print_msg

    ldr x0, =line3
    mov x1, #len3
    bl print_msg

    ldr x0, =line4
    mov x1, #len4
    bl print_msg

    ldr x0, =line5
    mov x1, #len5
    bl print_msg

    ldr x0, =line6
    mov x1, #len6
    bl print_msg

    ldr x0, =line7
    mov x1, #len7
    bl print_msg

    // exit
    mov x8, #93
    mov x0, #0
    svc #0

// Función para imprimir mensaje (x0 = ptr, x1 = len)
print_msg:
    mov x2, x1
    mov x1, x0
    mov x0, #1      // stdout
    mov x8, #64     // syscall write
    svc #0
    ret