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
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
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
Dettagli
Publisher
A.A. 2020-2021
2 pagine
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.