Patrick TRAU, L2 SPI

cours Archi

extraits du tchat du TP2

Cours Architecture des Ordinateurs et Systèmes d'Exploitation

lien vers le sujet.

petit résumé du Chat du TP2 première demi-séance

aaaa : j'ai lu la question pour la c du premier exo, vous parlez de quel bit ?
Trau : Q1c : les fonctions reçoivent 2 arguments : un entier, et le n° du bit qui nous intéresse (entre 0 et 7).
aaaa : donc c'est nous qui le choisissons au départ

bbbb : pour la question 1 C, quand vous dites 5 fonction, c'est 5 fonctions qu'on met  dans la fonction principal c'est à dire la 1 a, ou 5 fonction différente (def)?
Trau : 5 fonctions différentes. Puis éventuellement une fonction de test qui fait les input et appelle les autres (ou vous faites cela directement hors des fonctions, à la fin du programme). les 5 fonctions ne font que du traitement. elles peuvent retourner la valeur modifiée. Dans mon test, je peux écrire quelque chose comme "val=force0(val,3)" puis "affiche8(val)"

cccc : pour la Q1 faut il  prendre en compte qu il soit possible de rentre une valeur  supérieur à 255  et donc supprimer les bits  en trop ?
Trau : inutile de tester si la valeur est trop grande, vous ne regardez que les 8 derniers bits.

dddd : pour la question 2 on doit faire que le port 2 et 4 bit du port 1 soit égale à une valeur précise ?
Trau : vous envoyez une valeur sur le port B et les 4 bits du port A. Comme vous n'avez pas le CNA ni le comparateur, en fait vous les affichez à l'écran. Et l'utilisateur répond (input) 0 ou 1 selon si c'est plus ou moins que la valeur à laquelle il pense.
Trau : Q2A : le prog dit 1,2,3,4,5 vous répondez 1, puis à 6 vous répondez 0 -> le prog dit "c'est donc 5". S'il dit "c'est 6" ça me va aussi, puisque c'est >=5 et <6

eeee : monsieur je n'ai pas compris la rotation c'est quoi exactement ? c'est une inversion des bits?
Trau : c'est pour une guirlande de Noël. certaines sont allumées d'autres éteintes, et on décale d'un cran: chaque lampe se retrouve dans l'état qu'avait avant celle d'à côté. Et la première dans l'état qu'avait la dernière. voir vidéo sur moodle

ffff : faut faire fois deux ou diviser par deux
TRAU (oralement) bon sang de bonsoir (ou autre exclamation exprimant mon énervement) le titre est bien "masquages et décalages" !

Je vous mets aussi ici les remarques les plus fréquentes sur vos rendus au bout de 2h :

Tchat 2ème moitié du TP :

aaaa : Bonjour, suite à votre mail, j'ai refait les question 1)c) en utilisant uniquement des opérations élémentaire sur les bits. Pour toutes les def et même pour la rotation j'ai une ligne de programme (sans vérification) est-ce possible et est ce que mon programme peut être correct tout de même ? mon programme de vérification fonctionne entièrement.
Trau : oui s'il y a masquages et décalages
aaaa : Pour la mise à 0/1 et l'inversion d'un bit je n'ai pas eu besoin de masque seulement de décalage est ce que ma réponse peut convenir ?
Trau : ça m'étonne. pour changer un bit dans une mémoire et ne pas changer les autres moi j’utilise un masquage (c'est à dire un masque, et une opération & ou |)
aaaa : j'ai testé avec plusieurs positions de bit a changer et même sans masque les autres bits ne changent pas. pour une fonction j'ai du utiliser un +
Trau : le + marche si on est sûr que c'était 0 avant. le | met à 1 que ça ait été 0 ou 1 avant. C'est à dire qui si je veux allumer mon chauffage, ça marche même si ma femme l'a déjà allumé (avec un plus, non seulement ça met 0 sur le bit du chauffage, mais avec la retenue ça allume le bit d'à côté)

bbbb : question 3.b) concrètement le programme doit effectuer quoi comme action après que l'opérateur ait entré la pression désirée ?
Trau : n'ayant pas de capteur de pression, tu devras rentrer plusieurs fois une valeur de pression (comme donnerait le capteur). Pour la 3a 10 valeurs. pour la 3b tu entres des valeurs croissantes (à chaque fois que le programme aimerait faire une lecture), pour la sortie tu peux utiliser l'affichage de la Q1a, que tu affiches à chaque fois que tu changes le bit se sortie (sans changer les autres, donc avec les fonctions de la q1c)

cccc : que doit contenir le rapport?
Trau : c'est écrit dans le haut du sujet. Regardez ma correction du TP1, il y a des programmes et des explications, je veux la même chose (en plus joli ;-)
dddd : Est ce qu'on doit rendre le travail dans un seul fichier ou des fichiers sépares pour chaque
Trau : je n'ai pas besoin des programmes, si le source est dans le rapport (soit dans vos explications, soit en annexe). Vous me mettez aussi un ou plusieurs exemples de résultat du programme (judicieusement choisi). Partez de l'hypothèse que je lirai vos rapports sur ma tablette, dans le train


Patrick TRAU, avril 2021