ciao sto andando in crisi completamente sul linguaggio assembly.Ho il seguente esercizio:
Si traducano le seguenti pseudoistruzioni:
a)in Assembly MIPS nativo
b)in linguaggio macchina MIPS
divi $s3, $3, 3 # divide by immediate
blei $a0, +32, –32 # branch on less or equal than immediate
Ho già a soluzione:
codice:
divi $s3, $3, 3 # divide by immediate
addi $at, $zero, 3
mult $3, $at
mflo $s3
blei $a0, +32, –32 # branch on less or equal than immediate
slti $t0, $a0, 33 # $t0=1 se $a0<33 (invece che ≤32)
bne $t0, $zero, –36
Dalle soluzioni lui sviluppa le isturzioni ma per la divisone,perche nella soluzione utilizza solo la moltiplicazione e l'addizione?
E poi nelle ultime due istruzioni perchè nella slti usa 33 invece che +32 e nella bne usa - 36 invece che -32?