BUT2/SCR/SCR1.2/TP19/TP19_reponse.txt

58 lines
1.8 KiB
Plaintext
Raw Normal View History

2023-10-23 13:23:36 +02:00
Q1)
Dans l'exercice, on lis bit par bit le nombre A.
Pour faire cela, on décale à chaque tour de boucle les bits de A vers la droite.
Pour savoir quand on a finis de lire A, on étends étends A en mettant plein de 0 devant.
Comme ça, on sait que lorsqu'il ne reste que des 0, on à finis de lire A (tous les bits sont passer à l'extrème gauche et on disparus)
Q2)
Les registre correpondent à des endroit physique sur l'ordinateur. Les variables, ne sont que des addresse qui pointe vers une valeur.
Pour utiliser une variable, il faut donc dabord la placer dans un registre.
Q3)
L'étiquette next permet de faire le "if". Si le test n'est pas vérifier, on se déplace après les instruction qui devrait s'éxecuter si la condition était vérifié. D'ou l'étiquette next.
Q4)
tbz permet de lire le bit de poids faible d'un registre et de le comparer à 0.
Dans notre programme, on compare à chaque tour de boucle, le prochain bit de B.
Cela permet d'ajouter A au résultat si le bit vaut 1.
Ce qui permet la multiplication
Q5)
si a = 0101 = 5
si b = 0111 = 7
on étend b : 00000111
et on exécute tant que b est différent de 0
on prend le bit de poid faible de b
et si il vaut 1, on ajoute au résultat la valeur de a:
ensuite on décale les bit de A à gauche
et les bits de B à droite
Etape 1
bit de poids faible = 1
resultat = 0101
a = 01010
b = 00000011
eTAPE 2
bit de poids faible = 1
resultat = 0101 + 01010 = 01111
a = 010100
b = 00000001
Etape3
bit de poids faible = 1
resultat = 01111 + 010100 = 100011
a = 0101000
b = 00000000
On s'aérrète car b vaut 0. (on a lu tout les bits utiles de b)
Q6)
Dans mon programme, w4 correspond à a
Dans mon programme, w5 correspond à b
Dans mon programme, x2 correspond à respb
Dans mon programme, x1 correspond à respa
Dans mon programme, x0 correspond à resp