Estratto del documento
Codice Assembly per verificare se una stringa è palindroma
.datastr: .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
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 metà 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 successivo
j cicloyespal
li $v0, 4
la $a0, y
syscall
Anteprima
Vedrai una selezione di 1 pagina su 2
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.
-
Programma per MIPS
-
Programma d'esame su Serie di Taylor in MIPS
-
Fisica I programma completo
-
Fare un programma in C++