Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-06-2003, 13:49   #1
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
[NON + URGENTE] Riconoscere palindromicità a livello di bit

Salve ragazzi devo fare un progetto in assembler (MIPS) da consegnare entro la prossima settimana. In pratica data una stringa in ingresso devo vedere se questa è palindroma a livello di bit (es. 1001010000101001) capito? Non mi interessa che mi diciate i comandi (visto che l'assembler mips chi lo conosce?) ma che mi diciate l'algoritmo per risolvere il problema, cioè usare and, or, rotazione a sinistra o destra ecc... Grazie a chi mi risponderà!
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 14:08   #2
lalli83
Senior Member
 
L'Avatar di lalli83
 
Iscritto dal: Feb 2003
Città: Biella
Messaggi: 843
mmm...io ho appena fatto lo stesso esercizio, ma nn in assembler..in C...ti dico come l ho fatto magari ti può aiutare...
Data la stringa "ciao" ovviamente NON palindroma

1° metodo:
mettere in una variabile ausiliaria la stringa --> "oaic"
e poi confrontarla con quella iniziale --> se "oaic" è = a "ciao" è palindroma

2° metodo:
confronto lettera per lettera con due indici, I e J, che partono rispettivamente dall inizio della stringa e dalla fine, fino a quando trovo una coppia diversa --> esempio con "otto"....1° lettera=4° lettera? si...2° lettera=3° lettera? si..allora parola è palindroma!



Purtroppo non mi ricordo una mazza di assembler quindi questo è l unio aiuto che ti posso dare, ma penso che il primo metodo sia quello che magari si riesce a realizzare meglio con le operazioni booleane...penso
__________________
Ubl~Team Rulez ^_^
lalli83 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 14:12   #3
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originally posted by "lalli83"

mmm...io ho appena fatto lo stesso esercizio, ma nn in assembler..in C...ti dico come l ho fatto magari ti può aiutare...
Data la stringa "ciao" ovviamente NON palindroma

1° metodo:
mettere in una variabile ausiliaria la stringa --> "oaic"
e poi confrontarla con quella iniziale --> se "oaic" è = a "ciao" è palindroma

2° metodo:
confronto lettera per lettera con due indici, I e J, che partono rispettivamente dall inizio della stringa e dalla fine, fino a quando trovo una coppia diversa --> esempio con "otto"....1° lettera=4° lettera? si...2° lettera=3° lettera? si..allora parola è palindroma!



Purtroppo non mi ricordo una mazza di assembler quindi questo è l unio aiuto che ti posso dare, ma penso che il primo metodo sia quello che magari si riesce a realizzare meglio con le operazioni booleane...penso
purtroppo il secondo metodo serve per controllare se una parola è palindroma a livello di caratteri e non a livello di bit (infatti ho usato questo metodo per svolgere la prima parte del progetto), ora vedrò se il 1° metodo che mi hai consigliato è attuabile, grazie!
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 14:19   #4
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originally posted by "VegetaSSJ5"



purtroppo il secondo metodo serve per controllare se una parola è palindroma a livello di caratteri e non a livello di bit (infatti ho usato questo metodo per svolgere la prima parte del progetto), ora vedrò se il 1° metodo che mi hai consigliato è attuabile, grazie!
ho appena provato a fare con il primo metodo, ma anche in questo caso non si controlla la palindromicità a livello di bit...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 14:52   #5
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
ragazzi proviamo a capovolgere il problema: facciamo conto che io devo trasformare 8 bit di un registro (da 32bit) capovolgendoli, cioè ad esempio se ho in un registro

0110 0001

lo devo trasformare in

1000 0110

(cioè lo devo riscrivere da sinistra verso destra), sapete dirmi come posso fare? posso utilizzare comandi che effettuano operazioni di scalamento, di rotazione e i tradizionali operatori logici....
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 15:39   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Re: [URGENTE] Riconoscere palindromicità a livello di bit

Ti ho scritto il normale ciclo...
Codice:
Ho chiamato R1...R8 i registri...

R1 = 0
R2 = 7
R3 = 0
R4 = lunghezza della stringa-1

se lunghezza della stringa è pari allora R5 = lunghezza della stringa / 2 +1
altrimenti R5 = lunghezza della stringa / 2 +2

se R3 uguale R5 vai a [b]successo[/b]
{
  se R1 minore di 8
  {
     R6 = 1
     shift a sinistra di R1 posizioni
     R7 = stringa[R3] & R6
     shift a destra di R1 posizioni
     R6 = 1
     shift a sinistra di R2 posizioni
     R8 = stringa[R4] & R6
     shift a destra di R2 posizioni
     se R7 diverso da R8 allora vai a [b]insuccesso[/b]     
     incremento R3
     decremento R4
  }
  R1 = 0
  R2 = 7
  incremento R3
  decremento R4
}
Se invece vuoi invertire un byte puoi fare una cosa simile a quello che succede nel ciclo interno qui sopra... E' praticamente la stessa cosa...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 17:19   #7
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Solo sei righe per me posson bastare :o :o :o
solo sei righe per me voglio dimenticare :o :o :o
capelli biondi da accarezzare :o :o :o
e labbra rosse sulle quali morire. :o :o :o
Solo sei righe per me, solo per me. :o :o :o
Una la voglio perché sa bene ballare. :o :o :o
Una la voglio perché ancor non sa cosa vuol dir l'amore. :o :o :o
Una soltanto perché ha conosciuto tutti tranne me. :o :o :o
Solo sei righe così che dicon' solo di sì :o :o :o :o :o :o


Codice:
Function f_CarPalindromo(a$)
  aa = Asc(a$)
  bb = 0
  For k = 0 To 7
    bb = bb + f_bit(aa, 7 - k) * 2 ^ k
  Next k
  f_CarPalindromo = Chr$(bb)
End Function
Codice:
Sub ppp()
  a$ = "VegetaSSJ5"
  b$ = "¬RÊʆ.¦æ¦j"
 
  ii = Len(a$)
  apal$ = ""
  For i = ii To 1 Step -1
    apal$ = apal$ & f_CarPalindromo(Mid$(a$, i, 1))
  Next i
  
  OK = (apal$ = b$)
End Sub



Function f_bit(i8, k)
   f_bit = -((i8 And 2 ^ k) > 0)
End Function
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 18:08   #8
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Re: [URGENTE] Riconoscere palindromicità a livello di bit

Quote:
Originally posted by "cionci"

Ti ho scritto il normale ciclo...
Codice:
Ho chiamato R1...R8 i registri...

R1 = 0
R2 = 7
R3 = 0
R4 = lunghezza della stringa-1

se lunghezza della stringa è pari allora R5 = lunghezza della stringa / 2 +1
altrimenti R5 = lunghezza della stringa / 2 +2

se R3 uguale R5 vai a [b]successo[/b]
{
  se R1 minore di 8
  {
     R6 = 1
     shift a sinistra di R1 posizioni
     R7 = stringa[R3] & R6
     shift a destra di R1 posizioni
     R6 = 1
     shift a sinistra di R2 posizioni
     R8 = stringa[R4] & R6
     shift a destra di R2 posizioni
     se R7 diverso da R8 allora vai a [b]insuccesso[/b]     
     incremento R3
     decremento R4
  }
  R1 = 0
  R2 = 7
  incremento R3
  decremento R4
}
Se invece vuoi invertire un byte puoi fare una cosa simile a quello che succede nel ciclo interno qui sopra... E' praticamente la stessa cosa...
ragazzi grazie 1000!!!! entro oggi o domani proverò s scrivere il codice in assembler e vi farò sapere quindi se avrò problemi non spariteee!!!

a2000 mi hai scritto un programmino in un linguaggio che non conosco (credo sia c giusto?) per cui è un po' difficile comprenderlo...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 20:51   #9
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Re: [URGENTE] Riconoscere palindromicità a livello di bit

Quote:
Originally posted by "cionci"

Codice:
Ho chiamato R1...R8 i registri...

R1 = 0
R2 = 7
R3 = 0
R4 = lunghezza della stringa-1

se lunghezza della stringa è pari allora R5 = lunghezza della stringa / 2 +1
altrimenti R5 = lunghezza della stringa / 2 +2

se R3 uguale R5 vai a [b]successo[/b]
{
  se R1 minore di 8
  {
     R6 = 1
     shift a sinistra di R1 posizioni
     R7 = stringa[R3] & R6
     shift a destra di R1 posizioni
     R6 = 1
     shift a sinistra di R2 posizioni
     R8 = stringa[R4] & R6
     shift a destra di R2 posizioni
     se R7 diverso da R8 allora vai a [b]insuccesso[/b]     
     incremento R3
     decremento R4
  }
  R1 = 0
  R2 = 7
  incremento R3
  decremento R4
}
cionci tu ad un certo punto dici di shiftare (a sinistra o a destra). ma cosa devo shiftare? se nello shift vengono persi dei bit non fa niente no?
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 21:16   #10
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
ancora più semplice e commentato !

Codice:
Sub Pal1()

'Legge la stringa come vettore di numeri binari a 8 bit
Dim a(1 To 10)
a(1) = Asc("V")
a(2) = Asc("e")
a(3) = Asc("g")
a(4) = Asc("e")
a(5) = Asc("t")
a(6) = Asc(".")
a(7) = Asc("¦")
a(8) = Asc("æ")
a(9) = Asc("¦")
a(10) = Asc("j")
ii = UBound(a)                            'legge il numero di caratteri della stringa


OK = True                                 'flag test stringa palindroma.
For i = 1 To Int((ii + 1) / 2)            'Per i=1 alla metà della stringa esegui
 ai = a(i)                    'carica il carattere i-esimodella stringa nel registro ai
 'Calcola b: il carattere palindromo di ai
 b = 0                                    'azzera il registro b
 For k = 0 To 7                           'Per k = 0 fino a 7 esegui
  b = b - ((ai And 2 ^ k) > 0) * 2 ^ (7 - k) 'self-explaining
 Next k
 If b <> a(ii - i + 1) Then               'se b è diverso dal simmetrico di ai
  OK = False                              'la stringa non è palindroma
  Exit For                                'esci dal ciclo
 End If
Next i

End Sub
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 14-06-2003, 21:25   #11
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
in altre parole:

1) leggi la stringa come numeri a 8 bit
2) per ogni carattere della prima metà della stringa ne determini il palindromo
3) testi se è uguale al simmetrico nella seconda metà della stringa

per determinare il palindromo di un carattere lo spazzoli bit per bit e ne costruisci uno a bit invertiti: 10010111 -> 11101001
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 05:49   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Re: [URGENTE] Riconoscere palindromicità a livello di bit

Codice:
R1 = 0
R2 = 7
R3 = 0
R4 = lunghezza della stringa-1

se lunghezza della stringa è pari allora R5 = lunghezza della stringa / 2 +1
altrimenti R5 = lunghezza della stringa / 2 +2

se R3 uguale R5 vai a [b]successo[/b]
{
  se R1 minore di 8
  {
     R6 = 1
     shiftare R6 a sinistra di R1 posizioni
     R7 = stringa[R3] & R6
     shiftare R7 a destra di R1 posizioni
     R6 = 1
     shiftare R6 a sinistra di R2 posizioni
     R8 = stringa[R4] & R6
     shiftare R8 a destra di R2 posizioni
     se R7 diverso da R8 allora vai a [b]insuccesso[/b]     
     incremento R3
     decremento R4
  }
  R1 = 0
  R2 = 7
  incremento R3
  decremento R4
}
Uso lo shift invece di moltiplicare e dividere per le potenze di 2...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 14:02   #13
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originally posted by "a2000"

Codice:
Sub Pal1()
For k = 0 To 7                           'Per k = 0 fino a 7 esegui
  b = b - ((ai And 2 ^ k) > 0) * 2 ^ (7 - k) 'self-explaining
 Next k
End Sub
puoi spiegarmi cosa significa questo self explaining?

inoltre nell'algoritmo che mi hai dato (il secondo) la lunghezza massima è fino a 10 caratteri mentre invece a me servirebbe fino a max 31 caratteri.

dici anche di caricare il carattere i nel registro a(i) ma non posso fare questo perchè ho a disposizione max 7+8 registri.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 16:12   #14
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
a2000 tu hai scritto:
((ai And 2 ^ k) > 0)

cosa vuol dire quel >0???
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 19:30   #15
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
nell'algoritmo che mi hai dato (il secondo) la lunghezza massima è fino a 10 caratteri mentre invece a me servirebbe fino a max 31 caratteri.
no, no quello è solo un esempio puoi leggere stringhe lunghe a piacere.
intendevo che devi poterle leggere carattere per carattere (caratteri codificati a 8 bit)

dici anche di caricare il carattere i nel registro a(i) ma non posso fare questo perchè ho a disposizione max 7+8 registri.
no, scusa, intendevo dire che puoi caricare, solo per comodità, il carattere i-esimo della stringa, a(i), in un unico registro di appoggio che ho chiamato ai solo per ricordare che ci ho caricato il carattere a(i).

puoi spiegarmi cosa significa questo self explaining?
Giusto, hai ragione.
E' l'operazione che costruisce, un bit alla volta, il carattere palindromo di ai (cioè a(i)) che ho chiamato b.
Per esempio ai = 10001011 --> b = 11010001
Funziona così:

Per ogni bit di ai partendo dal meno significativo
ne leggo il valore con ai And 2^k
vedo se è > 0, ossia se è 1 o 0.
moltiplico il valore del bit trovato (1 o 0) per 2^(7-k)
e lo sommo a b
Ripeti

Tutto questo è fatto con il ciclo:
For k = 0 To 7
b = b - ((ai And 2 ^ k) > 0) * 2 ^ (7 - k)
Next k


Però in assembler:
- l'estrazione del bit k-esimo di ai
- la moltiplicazione per 2^(7-k)
- e la somma ripetuta al registro di calcolo b

può essere realizzata anche molto più facilmente se hai istruzioni del tuo assembler MIPS già predisposte (almeno l'estrazione del bit k-esimo ci dovrebbe essere senza bisogno di fare l'And con 2^k).
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 20:34   #16
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Quote:
Originally posted by "a2000"

Però in assembler:
- l'estrazione del bit k-esimo di ai
- la moltiplicazione per 2^(7-k)
- e la somma ripetuta al registro di calcolo b

può essere realizzata anche molto più facilmente se hai istruzioni del tuo assembler MIPS già predisposte (almeno l'estrazione del bit k-esimo ci dovrebbe essere senza bisogno di fare l'And con 2^k).
grazie sei stato molto gentile, cmq purtroppo non ho a disposizione quel genere di comando che dici tu (il libro riporta tutti i comandi e non ci sono comendi che gestiscono il singolo bit), sarebbe stato molto + facile...
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 20:51   #17
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
e allora per l'estrazione dei bit devi utilizzare

a AND 1 per il 1° bit
a AND 2 per il 2° bit
a AND 4 per il 3° bit
a AND 8 per il 4° bit
a AND 16 per il 5° bit
a AND 32 per il 6° bit
a AND 64 per il 7° bit
a AND 128 per l' 8° bit

ma è semplice anche così.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2003, 20:59   #18
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
tu dirai: grazie al ca++o, non mi potevi scrivere:

a AND 2^k

no, perchè magari è più comodo in assembler "srotolare" un ciclo in pochi passi (8) in otto istruzioni esplicite


c = ai And 1
se c > 0 allora: b = b + 128

c = ai And 2
se c > 0 allora: b = b + 64

c = ai And 4
se c > 0 allora: b = b + 32

c = ai And 8
se c > 0 allora: b = b + 16

c = ai And 16
se c > 0 allora: b = b + 8

c = ai And 32
se c > 0 allora: b = b + 4

c = ai And 64
se c > 0 allora: b = b + 2

c = ai And 128
se c > 0 allora: b = b + 1
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2003, 00:16   #19
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
ragazzi dopo tante peripezie finalmente ho raggiunto la soluzione! in pratica per costruirmi il palindromo di bit di un carattere memorizzo in 8 registri diversi il bit i-esimo di quel carattere in questo modo:

- per memorizzare il primo bit in un registro faccio lo shift a sinistra di 31 bit in modo tale da avere nel bit + significativo il primo bit; quindi faccio di nuovo lo shift a destra ma questa volta di 24 bit in modo tale che venga memorizzato nella posizione numero 7 (cioè l'ottavo bit) del registro e così da avere alla sua sinistra tutti zeri;

- per memorizzare gli altri devo shiftare a sinistra di 31-i, poi a destra di 31 e di nuovo a sinistra di i.

(rileggendo quello che ho scritto è un casino bestiale!! cmq vi assicuro che è + facile a farsi che a dirsi). cmq alla fine funziona, ho provato la stringa "Fb" e mi dà come risultato che è effettivamente palindroma bit a bit!

grazie a tutti coloro che si sono interessati!!!!

P.S. Domani mattina ho l'esame di Lab. Arch. e per fare questo c@xxo di progetto non ho studiato il resto! Che dio me la mandi buona (mora, alta, con due bette tette e un bel culetto sodo!)!
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2003, 00:22   #20
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
vabbè se a qualcuno dovesse servire.... (ma non credo visto che in italia credo che solo noi studiamo l'assembler mips anzichè di un'architettura x86!)
Codice:
ctrl_bit:
lb $s2, 0($s0)			#$s2= il carattere del puntatore a sinistra

#COSTRUZIONE DEL PALINDROMO DI $S2 (metto in $ti il bit i-esimo di $s2)
sll $t0, $s2, 31
srl $t0, $t0, 24

sll $t1, $s2, 30
srl $t1, $t1, 31
sll $t1, $t1, 6	

sll $t2, $s2, 29
srl $t2, $t2, 31
sll $t2, $t2, 5

sll $t3, $s2, 28
srl $t3, $t2, 31
sll $t3, $t3, 4

sll $t4, $s2, 27
srl $t4, $t4, 31
sll $t4, $t4, 3

sll $t5, $s2, 26
srl $t5, $t5, 31
sll $t5, $t5, 2

sll $t6, $s2, 25
srl $t6, $t6, 31
sll $t6, $t6, 1

sll $t7, $s2, 24
srl $t7, $t7, 31
sll $t7, $t7, 7

or $s3, $t0, $t1
or $s3, $s3, $t2
or $s3, $s3, $t3
or $s3, $s3, $t4
or $s3, $s3, $t5
or $s3, $s3, $t6
or $s3, $s3, $t7		#in $s3 ho la sequenza palindroma dei bit che compongono il carattere in $s2

lb $s4, 0($s1)			#$s4= il carattere del puntatore a destra
bne $s3, $s4, no_pali_bit	#se la sequenza di bit che ho costruito è diversa dal carattere del puntatore
				#a destra, la stringa non è palindroma bit a bit
addi $s0, $s0, 1		#incremento il puntatore di carattere di sinistra
addi $s1, $s1, -1		#decremento il puntatore di carattere di destra
blt $s1, $s0, pali_bit		#se il puntatore di destra si trova a sinistra (ma non lo stesso) del carattere
				#puntato dal puntatore di sinistra vuol dire che ho controllato tutti i
				#caratteri ed esco dal ciclo
j ctrl_bit			#altrimenti itero
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Microsoft stravolge l'app Sicurezza di W...
Mercato smartphone in caduta libera: -20...
Android 17 QPR3 Beta 3 riporta il blocco...
Le 10 offerte TOP in Amazon del weekend:...
Dyson, doppio crollo su Amazon: purifica...
Il 70% delle imprese non vede effetti de...
HillMiles MileCity1 a 616€: la city e-bi...
GAC Aion UT, prima prova: tanta roba a 2...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:52.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v