Documentation d'un code assembleur pas claire
Résolu/FerméPhil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 11 mars 2023 à 17:51
- Ordinapoche
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Comment créer un qr code - Guide
4 réponses
Modifié le 11 mars 2023 à 13:47
Bonjour,
Selon moi il faut comprendre ceci :
Le code de SHT étant 612 , c'est ce qui apparait dans le registre accumulateur (ACC).
Un décalage à gauche fait donc disparaitre le 6 ==> ACC passe à 012
2 décalage à droite fait disparaitre le 01 ===> ACC devient 002
11 mars 2023 à 14:03
Bonjour Baladur,
Excuse-moi, je n'ai pas tout dit:
6, c'est le code de l'instruction (SHT)
et 12 serait donc les valeurs de décalage (1 vers la gauche, et 2 vers la droite)
Et, d'après l'exemple, 12 est dans l'accumulateur et on le décale de 1 puis 2, et ça doit donner 2
Bizarre
L'instruction SHT se code 06lr où l est le décalage vers la gauche et r est le décalage vers la droite. C'est une façon de combiner deux instructions.
Je suppose qu'on décale d'abord vers la gauche, puis vers la droite.
Si on veut décaler dans un seul sens, on met l'autre valeur à 0.
Le texte qui suit semble me contredire:
SHT
instruction de décalage d’une unité vers la gauche puis vers la droite du nombre contenu dans le registre accumulateur, avec entrée de zéro à droite puis
à gauche. Le but est d’obtenir très rapidement la multiplication et/ou la division par 10 (ou par 16 en hexadécimal) du nombre contenu dans l’ACC. Aucune
étape particulière, si ce n’est la positionnement du bus d’adresse à l’adresse correspondant au registre ACC. Exemple : SHT 12 (codée 612) du nombre 12
donne comme résultat 002 soit 2.
Quel est la grandeur supposée de l'accumulateur? Ça semble 3 chiffres hexadécimal.
Peut-être qu'on décale en hexa, et non en binaire.
La confusion vient du mauvais choix de l'exemple:
lecode est 0612 et acc = 0012, pas très brillant.
Modifié le 11 mars 2023 à 17:53
Bonjour Pierrot,
Pas très brillant, en effet
De plus, les 2 textes se contredisent:
"décalage à gauche (du 1er chiffre) puis à droite (du 2nd chiffre)" : donc de 1 puis 2
et :
"décalage d’une unité vers la gauche puis vers la droite" : donc on décale de 1 tout le temps
L'idéal serait de récupérer un exemplaire du magazine: il y avait des petits programmes à exécuter
donc peut être un contenant un exemple concret de cette instruction
J'ai codé la machine en Python, mais quand je teste si code = SHT, je passe, pour le moment
elif(op_code == 'SHT'): pass