GNU/Linux xterm-256color bash 278 views

**
Nombre: romano.s
Autor: Karla Itzel Vázquez Cruz
Fecha: 08-04-2025
Descripción: Convertir numeros romanos a enteros Plataforma: Raspberry Pi OS 64-bit
Asciinema: romano.s


Versión en C:

Versión en ARM64 RaspbianOS Linux:

.section .bss
buffer: .skip 64

.section .data
msg_ingrese: .ascii "Ingrese numero romano (I, IV, V, IX, X): "
len_ingrese = . - msg_ingrese

msg_resultado: .ascii "Resultado: "
len_resultado = . - msg_resultado

newline: .ascii "\n"
len_nl = . - newline

.section .text
.global _start

_start:
    // Mostrar mensaje
    ldr x0, =msg_ingrese
    mov x1, #len_ingrese
    bl print_msg

    // Leer entrada
    mov x0, #0
    ldr x1, =buffer
    mov x2, #64
    mov x8, #63
    svc #0

    ldr x1, =buffer

    // Leer primer caracter
    ldrb w2, [x1]
    ldrb w3, [x1, #1]

    // Combinaciones de dos letras (IV o IX)
    cmp w2, #'I'
    bne revisar_uno

    cmp w3, #'V'
    beq valor_iv
    cmp w3, #'X'
    beq valor_ix

revisar_uno:
    cmp w2, #'I'
    beq valor_1
    cmp w2, #'V'
    beq valor_5
    cmp w2, #'X'
    beq valor_10

// Valor por defecto
mov x4, #0
b mostrar

valor_iv:
    mov x4, #4
    b mostrar
valor_ix:
    mov x4, #9
    b mostrar
valor_1:
    mov x4, #1
    b mostrar
valor_5:
    mov x4, #5
    b mostrar
valor_10:
    mov x4, #10
    b mostrar

mostrar:
    ldr x0, =msg_resultado
    mov x1, #len_resultado
    bl print_msg

    mov x0, x4
    bl print_number

    ldr x0, =newline
    mov x1, #len_nl
    bl print_msg

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

// --- Función imprimir mensaje ---
print_msg:
    mov x2, x1
    mov x1, x0
    mov x0, #1
    mov x8, #64
    svc #0
    ret

// --- Función imprimir número ---
print_number:
    mov x1, x0
    ldr x2, =buffer
    add x2, x2, #63
    mov w3, #0

convert_loop:
    mov x4, #10
    udiv x5, x1, x4
    msub x6, x5, x4, x1
    add x6, x6, #'0'
    strb w6, [x2], #-1
    mov x1, x5
    add w3, w3, #1
    cbnz x1, convert_loop

    add x2, x2, #1
    mov x1, x2
    mov w2, w3
    mov x0, #1
    mov x8, #64
    svc #0
    ret

More recordings by Itzel

Browse all

SUMA 2 NUMEROS 4:50

by Itzel

FAHRENHEIT A CELSIUS 1:26

by Itzel

CONTADOR DE A'S 1:07

by Itzel

CIRCULO 9 1:36

by Itzel