Estratto del documento

.data

str: .asciiz "etnagigante"

halflen: .byte 5 #lunghezza di metà parola approssimata all'intero inferiore

len: .byte 10 #lungezza della stringa -1, il -1 mi serve per puntare correttamente all'ultimo

elemento di memoria

yp: .asciiz "La stringa inserita è palindroma"

np: .asciiz "La stringa non è palindroma"

.text

main: la $a1, str #punto al primo elemento della stringa

lbu $s1, len

add $a0, $a1, $s1 #puntatore all'ultimo elemento della stringa

j palindromi

palindromi:

li $t0, 0

lb $t4, halflen

ciclo: sle $t5, $t0, $t4 #se arrivo fino a metà della stringa senza aver rilevato

problemi, allora questa condizione mi dice che la stringa è palindroma

bne $t5, 1, yespal

lbu $t1, 0($a1)

lbu $t2, 0($a0)

seq $t3, $t1, $t2 #confronto caratteri

bne $t3, 1, nopal #se c'è un carattere non coincidente allora vai a nopal

addi $t0, $t0, 1 #incremento il contatore che conta fino a mezza stringa

addiu $a0, $a0, -1 #faccio puntare il puntatore all'ultimo elemento al penultimo

addiu $a1, $a1, 1 #faccio puntare il puntatore al primo elemento al succesivo

j ciclo

yespal: li $v0, 4

la $a0, yp

syscall

Anteprima
Vedrai una selezione di 1 pagina su 2
Programma per testare se una stringa è palindroma in linguaggio MIPS Pag. 1
1 su 2
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Vito_G17 di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori e calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Ingegneria Prof.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community