Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Neglieserciziseguenti:
NOPSEUDOsignificachevietatoutilizzarepseudoistruzioni
MAXNsignificachepermessoutilizzarealmassimoNistruzioni
1) ScrivereunasequenzadiistruzioniMIPSchescriveilvalore1nelregistros6seilbitinsettimaposizione(da
destra) del registro s0 vale 1 (altrimenti il registro s6 rimane inalterato). Si suppone che i primi 16 bit di s0
sianotuttia0.
NOPSEUDO,MAX3
Soluzione
andi
beq
addi
$t1, $s0,
0x0040
$t1, $zero, FALSO
$s6, $zero, -1
FALSO:
2) Scrivere una sequenza di istruzioni che scrive il valore 1 nel registro s6 se il bit in decima posizione (da
sinistra)delregistros0vale1(altrimentiilregistros6rimaneinalterato).
NOPSEUDO,MAX5
Soluzione
lui
ori
and
beq
addi
$at,
$t1,
$t1,
$t1,
$s6,
0x0040
$at,
$s0,
$zero,
$zero,
FALSO:
3) Scrivereunasequenzadiistruzionicheassegnaivalori1,2o3alregistros0inbasealrisultatodelconfronto
trairegistrit1et0,checontengononumerirelativi,secondoloschemaseguente:t1<t01,t1>t02e
t1=t03
MAX7
Soluzione
NE:
LT:
FINE:
bne
addi
j
blt
addi
j
addi
$t1,
$s0,
FINE
$t1,
$s0,
FINE
$s0,
$t0,
NE
$zero, 3
// eq
$t0,
LT
$zero, 2
// gt
$zero, 1
// lt
4) Comelesercizioprecedente,mairegistrit1et0contengonodueindirizzi.
MAX7
Soluzione
NE:
LT:
FINE:
bne
addi
j
bltu
addi
j
addi
$t1,
$s0,
FINE
$t1,
$s0,
FINE
$s0,
$t0,
NE
$zero, 3
// eq
$t0,
LT
$zero, 2
// gt
$zero, 1
// lt
5) Indicareilrisultatodellesecuzionedeiprogrammidegliesercizi3e4neicasiseguenti.
s0 inprogramma4
contenutodeiregistri
s0 inprogramma3
$t0=0x00000005
1
2
$t1=0xFFFFFFF0
$t0=0xFFFFFFF1
1
1
$t1=0xFFFFFFF0
6) Comelesercizio4,maNOPSEUDO.
Soluzione
NE:
LT:
FINE:
bne
addi
j
sltu
bne
addi
j
addi
$t1,
$s0,
FINE
$t3,
$t3,
$s0,
FINE
$s0,
$t0,
NE
$zero, 3
// eq
$t1,
$t0
$zero, LT
$zero, 2
// gt
$zero, 1
// lt
7)
Scrivereunasequenzadiistruzionicheassegnaalregistros0ilvaloredelladimensionedellintervallotra
dueetichettediprogrammaL1eL2;notocheL2>L1.
Soluzione
L1:
L2:
.data
...
...
.text
la
$t0, L1
la
$t1, L2
subu $s0, $t1, $t0
8) SianoL1eL2dueetichettediunprogramma.Scrivereunasequenzadiistruzionicheassegnaalregistros0il
valore1seL1>L2,ilvalore0incasocontrario.
Soluzione
la
la
sltu
$t0, L1
$t1, L2
$s0, $t1, $t0
9) Datoilprogrammaseguente,indicareinesadecimaleilvaloredeiregistris1s7et2t4dopolesecuzione.Si
ricordachelarappresentazioneinternaLittleEndian.
.data
STRINGA: .ascii "abcd"
BYTE:
.word
0x 8081 8283
.text
la
$t1, STRINGA
la
$t2, BYTE
lb
$s1, 0($t2)
lh
$s2, 0($t2)
lw
$s3, 0($t2)
lbu $s4, 0($t2)
lbu $s5, 1($t2)
lbu $s6, 2($t2)
lbu $s7, 3($t2)
lb
$t2, 0($t1)
lb
$t3, 1($t1)
lh
$t4, 0($t1)
Soluzione
s1=0xFFFFFF83
s2=0xFFFF8283
s3=0x80818283
s5=0x00000082
s6=0x00000081
s7=0x00000080
t2=0x00000061(a)
t3=0x00000062(b)
t4=0x00006261(ba)
s4=0x00000083