Laboratoire 2 - Arithmétique
Sommaire
Arithmétique sur papier
Exercice 1
- Additionner
0b10110101
et0b01100011
(sans les convertir en décimal) - Convertir ces deux nombres et votre résultat en décimal pour vérifier
Exercice 2
- Additionner
0x12C4
et0x89A
- Convertir ces deux nombres et votre résultat en décimal pour vérifier
Exercice 3
- Convertissez 589 en binaire puis en hexadécimal
Exercice 4
- En 8 bits signé (complément à deux), quelle est la représentation de 87? et de -87? (en binaire et en hexadécimal)
- Mêmes questions en 128 bits signé
Exercice 5
- Quels nombres 16 bits signés sont représentés par
0x4000
et0xFADE
?
RARS
Exercice 6
Écrivez les instructions assembleur pour calculer:
s3 = s0+s1
s4 = s1-100+s0
s5 = (s0-5)-(s1-3)
s6 = s0*10
. Contrainte: utiliser 4add
en tout (et pas d’autres instructions)
Testez avec les valeurs initiales suivantes
li s0, 11
li s1, 13
Vérifiez après exécution que les valeurs des registres soient bien:
s0
= 11s1
= 13s3
= 24s4
= -76s5
= -4s6
= 110
Note: exécutez votre programme pas à pas.
Exercice 7
li s7, 0x76543210
- À quelles instructions correspondent la pseudoinstruction
li s7, 0x76543210
.li
: 12 bits signés,aui
: 20 bits signés
- Vérifiez en assemblant et en regardant le code assemblé (onglet Execute).
Exercice 8 (extra)
add s8, s7 ,s7
Note: assurez-vous que le mode 64 bits est désactivé dans Settings
- Est-ce que
0x76543210
+0x76543210
déborde en 32 bits signé? - Quelle est la représentation hexadécimale (32 bits non signée) de
s8
. - Validez avec RARS s’il y a eu débordement, et sa valeur hexadécimale (option Settings>Values displayed in hexadecimal).
Mêmes questions en 64 bits signé (activez le mode 64 bit dans Settings)