GNU/Linux xterm-256color bash 176 views

**
Nombre: capi.s
Autor: Karla Itzel Vázquez Cruz
Fecha: 10-04-2025
Descripción: Mayuscula al inicio de cada cadena.
Plataforma: Raspberry Pi OS 64-bit
Asciinema: capi.s


Versión en C:

void mayuscula_inicio_cadena(char *cadena) {
    int i = 0;
    while (cadena[i]) {
        if (i == 0 || cadena[i - 1] == ' ') {
            cadena[i] = toupper(cadena[i]);
        } else {
            cadena[i] = tolower(cadena[i]);
        }
        i++;
    }
}

Versión en ARM64 RaspbianOS Linux:

.section .data
prompt:     .asciz "Ingresa una cadena: "
prompt_len: .word 20
newline:    .asciz "\n"
newline_len: .word 1

.section .bss
input:      .space 100

.section .text
.global _start

_start:
    // Imprimir el mensaje de solicitud
    mov x0, 1
    ldr x1, =prompt
    ldr x2, =prompt_len
    ldr w2, [x2]
    mov x8, 64
    svc 0

    // Leer la cadena ingresada
    mov x0, 0
    ldr x1, =input
    mov x2, 100
    mov x8, 63
    svc 0

    // Procesar la cadena
    mov x10, x0        // Longitud de la cadena leída
    mov x11, 0         // Índice
    ldr x12, =input
    mov w13, #' '      // Espacio (usado para detectar palabras)

    mov w14, #' '      // Inicialmente consideramos que antes hubo un espacio

process_loop:
    cmp x11, x10
    b.ge done

    ldrb w1, [x12, x11]

    // Verificar si es letra minúscula
    cmp w14, #' '            // Si antes hubo un espacio, buscar convertir
    b.ne skip_convert

    cmp w1, #'a'
    blt skip_convert
    cmp w1, #'z'
    b.gt skip_convert

    // Convertir a mayúscula (restar 32)
    sub w1, w1, #32
    strb w1, [x12, x11]
    b next_char

skip_convert:
    strb w1, [x12, x11]

next_char:
    mov w14, w1         // Guardamos el carácter actual para próxima comparación
    add x11, x11, #1
    b process_loop

done:
    // Imprimir la cadena modificada
    mov x0, 1
    ldr x1, =input
    mov x2, x10
    mov x8, 64
    svc 0

    // Imprimir salto de línea
    mov x0, 1
    ldr x1, =newline
    ldr x2, =newline_len
    ldr w2, [x2]
    mov x8, 64
    svc 0

    // Salir
    mov x8, 93
    mov x0, 0
    svc 0

More recordings by Itzel

Browse all

BIN 1:02

by Itzel

PAR O IMPAR 3:37

by Itzel

BUCLE 3:15

by Itzel

CONTADOR PRIMOS 1:17

by Itzel