Documentation d'un code assembleur pas claire
RésoluPhil_1857 Messages postés 1872 Date d'inscription Statut Membre Dernière intervention -
- Ordinapoche
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
4 réponses
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
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.
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