Liens entre les exercices et les sections du livre: Chapitre 3: Exercices 3.1-3.7; 3.18-3.19.
3.1)
addi $5, $5, -1
3.2)
add $5, $0, $0
3.3)
sw $0, 1000($0)
3.4)
addi $5, $5, 1 slt $1, $5, $6 bne $1, $0, B1
3.5)
addi $5, $5, -1 slt $1, $0, $5 bne $1, $0, B1
3.6)
addi $11, $12, 100
3.7)
Pour simplifier le problème, remplaçons ``4 000 000
'' par
``400''. On aura alors:
addi $8, $0, 400 lw $9, 44($8) add $9, $9, $13 sw $9, 40($8)
3.18)
Parce qu'il ne serait pas possible de conserver une constante et une adresse (déplacement) dans une seule instruction.
addi $1, $2, -14 beq $1, $0, E1
3.19)
add $15, $0, $0 # $15 = i
Loop:
lw $8, 2000($15)
add $8, $8, $16
sw $8, 1500($15)
addi $15, $15, 4
slti $1, $15, 401 # i <= 4 * 100 < 401
bne $1, $0, Loop
Nombre d'instructions: 1 + 101*6 = 607.
Nombre de références mémoires: 101*2 = 202.