Conta un carattere di una stringa

di Vincenzo.79 il
17 risposte

17 Risposte - Pagina 2

  • Questa la prima porzione di codice, ma non mi stampa la stringa invertita; non c'è il confronto per vedere se un char è maiuscolo o minuscolo perchè la frase l'ho considerata tutta minuscola per ora.

    Poi voglio far inserire la stringa dall'utente

    .global _start
    .data
    	title:					.asciz "\n La stringa da convertire: "
    	string_in:			.asciz "ciao"
    	size:					.space 255
    	string_out:		.asciz "\n Stringa convertita: "
    .text
    _start:
    la a0, title
    li a7, 4
    ecall
    la a0, string_in
    la a1, size
    li a7, 4
    ecall
    mv t1, a0
    
    loop:
    	lb t0, 0(t1)
    	beqz t0, loop_1
    	addi t0, t0, -32
    	sb t0, 0(t1)
    	addi t1, t1, 1
    	j loop
    		
    loop_1:
    	la a0, string_out
    	li a7, 4
    	ecall
    	lb t0, 0(t1)
    	beqz t0, end
    	addi t1, t1, 1
    	mv a0, t0
    	li a7, 4
    	ecall
    	j loop_1
    
    end:
    # Fine del programma
    li a7, 10
    ecall
  • 21/07/2026 - Vincenzo.79 ha scritto:

    Non vorrei creare un nuovo post inutile

    Ma in realtà sarebbe meglio una discussione dedicata. Se googlando qualcuno cercasse informazioni per il lower/upper case, si dovrebbe "sorbire" tutto il discorso sul conteggio.

    Continua ad esserci li t1, 32 nel loop e non è una buona idea. E poi perché spostare in t0 il carattere inserito in ogni caso? Prima controlli se è uno spazio: se lo è salti alla fine, altrimenti lo sposti e prosegui

    _start:
    	li t1, 32
    loop:
    	la a0, in_char
    	li a7, 4
    	ecall
    	la a1, size
    	li a7, 12
    	ecall
    	beq t0, t1, end
        mv t0, a0

    mi dici poi solo che setup hai per scrivere/debuggare? Io ho messo su VSCode ma l'emulatore Venus non accetta gli input e vuole il parametro dell'ecall in a0 e non in a7. Mi sta facendo venir matto.

  • 22/07/2026 - Sgrubak ha scritto:

    mi dici poi solo che setup hai per scrivere/debuggare? Io ho messo su VSCode ma l'emulatore Venus non accetta gli input e vuole il parametro dell'ecall in a0 e non in a7. Mi sta facendo venir matto

    Ciao, grazie per i consigli.

    Io uso come simulatore rars

Devi accedere o registrarti per scrivere nel forum
17 risposte