Post by Anonymous User
La soluzione dei convertitori risulta quindi: 00001000010000000011000101110000 contente 2 bit in MENO a 0 dopo l'op.code e 2 bit in PIU a 0 alla fine (avendo shiftato a DX anzichè a SX)*.
Mi scuso per l'errore
Forum anonimo
L'istruzione è composta da: 6 bit di op. code (valore 2) e 26 bit in cui inserire l'indirizzo target. Questi 26 bit vanno estesi aggiungendo 2 bit pari a 0 a destra, ottenendo quindi 28 bit; Successivamente si prendono i primi 4 bit per PC per ottenere un indirizzo a 32 bit.
La risposta corretta è: 00001000000100000000110001011100, da cui si ricava l'indirizzo di destinazione (escludendo i primi 6 bit e aggiungendone 2 a destra):
0000 0100 0000 0011 0001 0111 00+00
0 4 0 3 1 7 0 ---> HEX
Provando a risolvere l'esercizio ho riscontrato questo DUBBIO:
Utilizzando diversi convertitori (https://www.eg.bucknell.edu/~csci320/mips_web/ e http://mipsconverter.com/instruction.html?optradio=on#) viene però fornita un altra soluzione, in cui i 2 bit a 0 aggiuntivi vengono messi a sinistra invece che a destra; si ottiene quindi:
00+00 0100 0000 0011 0001 0111 0000
0 4 0 3 1 7 0 ---> HEX
La soluzione dei convertitori risulta quindi: 00001000010000000011000101110000 contente 2 in più a 0 dopo l'op.code e 2 bit in meno a 0 alla fine (avendo shiftato a sinistra anzichè a destra).
Grazie per l'attenzione
Lei sembra non aver capito perché si possono sottintendere a livello di bit dell'istruzione quei 2 bit a zero. Se lo avesse capito non avrebbe alcun dubbio e riderebbe di quello che ha trovato su internet. Noi non vogliamo far passare l'esame a chi non capisce. Provo quindi a non rispondere in modo piatto piatto. Invece la invito a dare - sempre in forma anonima - una motivazione scritta del perché i progettisti MIPS hanno pensato di poter sottintendere quei 2 bit a zero. Lo faccio perché questi 5 minuti dedicati a capire la aiuteranno nella vita, oltre che in questo esame. Se ha fretta, guardi sul libro, su questo trova tutto.
Se domani sera non avrà trovato una spiegazione, lo scriva pure in questo thread - sempre in forma anonima se vuole - e, pur rattristato, le risponderemo in forma piatta piatta.
Grazie per la risposta!
Sperando di non aver capito male, il motivo per cui gli ultimi due bit dell’indirizzo vengono settati a 0 è legato al fatto che in questo modo l’istruzione è “allineata”, cioè sarà possibile prelevare il dato in memoria e trasmetterlo in un unico trasferimento.
Spero qualcuno mi corregga se ciò appena scritto è incorretto.