Buonasera a tutti,
sto svolgendo degli esercizi in Assembly, in particolare sto studiando come si gestiscono le strutture dati. Il quesito è di creare un programma che conti il numero di caratteri presenti in una stringa.
Ho fatto così:
Lasciando l'istruzione lb $t1,($t0) fuori dal ciclo while il programma va in loop. Perchè??codice:.data mess1: .asciiz "La stringa è lunga " mess2: .asciiz " caratteri" stringa: .asciiz "vercingetorige" lung: .half 0 .text .globl main main: la $t0,stringa #carico l'indirizzo della stringa in t0 lh $t2,lung #carico in t2 l'int lung while: lb $t1,($t0) # x=p beqz $t1,endwhile addiu $t2,$t2,1 #lung++ addiu $t0,$t0,1 #p++ j while endwhile: la $a0,mess1 li $v0,4 syscall add $a0,$t2,$zero li $v0,1 syscall la $a0,mess2 li $v0,4 syscall
Grazie per il vostro aiuto.

Rispondi quotando