zanardi84
14-04-2005, 07:50
Ciao a tutti!
Sono alle prese con l'assembler MIPS (R2000) e ho un grosso problema con le istruzioni logiche di tipo SHIFT OR AND. In particolare, non riesco a capire a cosa servono in ambito pratico.
Naturalmente so che si usano per compiere opwrazioni sui singoli bit come lo scalamento logico (SHIFT) o l'applicazione delle maschere che forzano i bit qa 0 o a 1 (AND e OR), però non so proprio a che servono in concreto.
La seconda domanda è correlata alla prima e riguarda un pezzo di codice che devo commentare riga per riga
sub1: move $v0, $zero
beq $a1, $zero, esci
andi $t0, $a1, 1
beq $zero, $t0, dopo
add $t1, $zero, 1
ciclo: add $v0, $v0, $t1
beq $t1, $a1, esci
addi $t1, $t1, 2
j ciclo
dopo: addi $t1, $zero, 2
j ciclo
esci: jr $ra
In specifico con capisco a cher serve l'istruzione immediata andi $t0, $a1, 1
all'interno di questa procedura e non ho ben chiara la sua struttura.
spero mi possiate rispondere perchè mi serve per proseguire lo studio
Grazie
Sono alle prese con l'assembler MIPS (R2000) e ho un grosso problema con le istruzioni logiche di tipo SHIFT OR AND. In particolare, non riesco a capire a cosa servono in ambito pratico.
Naturalmente so che si usano per compiere opwrazioni sui singoli bit come lo scalamento logico (SHIFT) o l'applicazione delle maschere che forzano i bit qa 0 o a 1 (AND e OR), però non so proprio a che servono in concreto.
La seconda domanda è correlata alla prima e riguarda un pezzo di codice che devo commentare riga per riga
sub1: move $v0, $zero
beq $a1, $zero, esci
andi $t0, $a1, 1
beq $zero, $t0, dopo
add $t1, $zero, 1
ciclo: add $v0, $v0, $t1
beq $t1, $a1, esci
addi $t1, $t1, 2
j ciclo
dopo: addi $t1, $zero, 2
j ciclo
esci: jr $ra
In specifico con capisco a cher serve l'istruzione immediata andi $t0, $a1, 1
all'interno di questa procedura e non ho ben chiara la sua struttura.
spero mi possiate rispondere perchè mi serve per proseguire lo studio
Grazie