Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-06-2003, 12: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, 13: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, 13: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, 13: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, 13: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, 14: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, 16: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, 17: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, 19: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, 20: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, 20: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, 04: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, 13: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, 15: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, 18: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, 19: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, 19: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, 19: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 15-06-2003, 23: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 15-06-2003, 23: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
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: 04:00.


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