GNU/Linux xterm-256color bash 187 views

**
Nombre: minumay.s
Autor: Karla Itzel Vázquez Cruz
Fecha: 10-04-2025
Descripción: Transforma una cadena en minusculas a una cadena en mayusculas.
Plataforma: Raspberry Pi OS 64-bit
Asciinema: minumay.s


Versión en C:

void convertir_a_mayusculas(char *cadena) {
    for (int i = 0; cadena[i]; i++) {
        cadena[i] = toupper(cadena[i]);
    }
}

Versión en ARM64 RaspbianOS Linux:

.section .data
prompt:     .asciz "Ingresa una cadena en minusculas: "
newline:    .asciz "\n"
    .section .bss
input:      .space 100  // Espacio para la cadena (ajusta el tamaño según sea necesario)
    .section .text
    .globl _start
_start:
    // Imprimir el mensaje de solicitud
    mov x0, 1           // File descriptor 1 (stdout)
    ldr x1, =prompt      // Dirección del mensaje
    ldr x2, =prompt_len  // Longitud del mensaje
    ldr w2, [x2]
    mov x8, 64          // syscall número para write
    svc 0               // Llamar a la syscall
    // Leer la cadena ingresada
    mov x0, 0           // File descriptor 0 (stdin)
    ldr x1, =input      // Dirección de la variable input
    mov x2, 100         // Leer hasta 100 bytes (ajusta según sea necesario)
    mov x8, 63          // syscall número para read
    svc 0               // Llamar a la syscall
    // Obtener la longitud de la cadena leída
    mov x10, x0        // X10 contiene la longitud de la cadena leida
    mov x11, 0         // Contador para el bucle
    ldr x12, =input     // Direccion de la cadena input
convert_loop:
    cmp x11, x10       // Compara el contador con la longitud de la cadena
    b.ge end_convert_loop // si es mayor o igual se termina el bucle
    ldrb w1, [x12, x11]  // Cargar el carácter actual
    cmp w1, 'a'        // Comparar con 'a'
    blt not_lowercase  // Si es menor, no es minúscula
    cmp w1, 'z'        // Comparar con 'z'
    bgt not_lowercase  // Si es mayor, no es minúscula
    sub w1, w1, #32    // Convertir a mayúscula
not_lowercase:
    strb w1, [x12, x11]  // Almacenar el carácter convertido
    add x11, x11, #1    // Incrementar el contador
    b convert_loop     // Repetir el bucle
end_convert_loop:
    // Imprimir la cadena convertida
    mov x0, 1           // File descriptor 1 (stdout)
    ldr x1, =input      // Dirección de input
    mov x2, x10         // Longitud de la cadena
    mov x8, 64          // syscall número para write
    svc 0               // Llamar a la syscall
    // Imprimir el salto de línea
    mov x0, 1           // File descriptor 1 (stdout)
    ldr x1, =newline    // Dirección del salto de línea
    ldr x2, =newline_len
    ldr w2, [x2]
    mov x8, 64          // syscall número para write
    svc 0               // Llamar a la syscall
    // Terminar el programa
    mov x8, 93          // syscall número para exit
    mov x0, 0           // Código de salida 0
    svc 0               // Realizar syscall
    .section .data
prompt_len: .word 32
newline_len: .word 1

More recordings by Itzel

Browse all

HOLA 3 VECES 1:37

by Itzel

OpenWeatherDashing 2:43

by Itzel

BUCLE 3:15

by Itzel

REVERSA DE UNA CADENA 8:22

by Itzel