GNU/Linux xterm-256color zsh 151 views

.section .data
mensaje:     .asciz "Tiempo estimado: "
minutos_txt: .space 4          // Espacio para string del número (2 dígitos + \n)
salto_linea: .asciz "\n"

.section .text
.global _start

_start:
    // Cálculo: (80 * 60) / 90 = 4800 / 90 = 53
    mov x0, #80
    mov x1, #60
    mul x2, x0, x1        // x2 = 80 * 60 = 4800
    mov x3, #90
    udiv x4, x2, x3       // x4 = 4800 / 90 = 53

    // Convertir x4 a caracteres ASCII (dígitos decimales)
    // x4 = 53 → '5''3'
    mov x5, x4
    mov x6, #10
    udiv x7, x5, x6       // x7 = x5 / 10 (decenas)
    msub x8, x7, x6, x5   // x8 = x5 - (x7 * 10) (unidades)

    add x7, x7, #'0'      // convertir a ASCII
    add x8, x8, #'0'

    ldr x9, =minutos_txt
    strb w7, [x9]         // primer dígito
    strb w8, [x9, #1]     // segundo dígito
    mov w10, #'\n'
    strb w10, [x9, #2]    // salto de línea
    mov w10, #0
    strb w10, [x9, #3]    // null terminator (opcional)

    // Imprimir mensaje
    mov x0, #1            // STDOUT
    ldr x1, =mensaje
    mov x2, #18           // longitud del mensaje
    mov x8, #64           // syscall: write
    svc 0

    // Imprimir número
    mov x0, #1
    ldr x1, =minutos_txt
    mov x2, #3            // 2 dígitos + \n
    mov x8, #64
    svc 0

    // Salir del programa
    mov x0, #0
    mov x8, #93           // syscall: exit
    svc 0