Outils pour utilisateurs

Outils du site


nsi:premiere:exercices:assembleur_python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
nsi:premiere:exercices:assembleur_python [2024/01/04 13:02] – supprimée - modification externe (Date inconnue) 127.0.0.1nsi:premiere:exercices:assembleur_python [2024/01/04 13:02] (Version actuelle) – ↷ Nom de la page changé de nsi:premiere:exercices:simulation_microprocesseur à nsi:premiere:exercices:assembleur_python goupillwiki
Ligne 1: Ligne 1:
 +====== Assembleur produit par Python ======
  
 +Python dispose de fonctions permettant d'afficher le code assembleur correspondant à un programme. Il faut utiliser le module **dis**.
 +
 +Le module produit un résultat comme :
 +
 +<code assembly linenums>
 +2           0 LOAD_CONST               0 (3)
 +            2 STORE_NAME               0 (x)
 +</code>
 +
 +Ces deux lignes viennent de la traduction de la ligne 2 de notre morceau de code.
 +  * ''LOAD_CONST 0 (3)'' signifie que l'on va écrire la valeur ''3'' dans le registre ''0'' qui est un des deux registres en entrée de l'UAL.
 +  * ''STORE_NAME 0 (x)'' signifie que l'on va écrire le contenu du registre ''0'' dans la mémoire étiquetée ''x''.
 +
 +**Testez l'exemple ci-dessous**
 +
 +<code python linenums>
 +import dis
 +code = """
 +x = 3
 +y = 5
 +z = x + y + 3
 +"""
 +dis.dis(code)
 +</code>
 +
 +Vous obtenez un résultat en assembleur. Faites le lien entre l'assembleur et le code Python.
 +
 +**Passez à l'assembleur**
 +
 +  - Écrivez un programme python permettant de sommer les entiers de 1 à 10,\\ //Utilisez une boucle while//
 +  - afficher l'assembleur correspondant,
 +  - traduisez ce code assembleur en une version comprise sur LMC et testez le fonctionnement sur LMC.