Table of Contents

TP 10 - Assambleur

Vous devez accepter l'assignment d'ici est travailler avec ce repository: Lab 10

Dans ce laboratoire, nous utiliserons le simulateur de langage d'assemblage https://schweigi.github.io/assembler-simulator/. Il simule un processeur avec les fonctionnalités suivantes:

La description de simulateur este disponible ici.

L'ensemble d'instructions

L'ensemble d'instructions représente les commandes qu'un processeur peut exécuter. Ce processeur connaît les instructions suivantes:

L'ensemble d'instructions avec sa description est disponible sur le site Web du simulateur https://schweigi.github.io/assembler-simulator/instruction-set.html.

Exercises

  1. Exécutez le programme initial. Changez le nom de la variable et essayez de comprendre comment écrire votre nom sur la sortie (2p)
  2. Écrivez un programme qui place les nombres 0, 2, 4, 6 dans les registres A, B, C et D.(1p)
  3. Écrivez le code pour calculer le reste de la division de la valeur du registre A par la valeur du registre B. Retournez la valeur de l'oppération 17%3. Expliquez qu'est-ce qui se passe. (1p)
  4. Écrivez un programme qui affiche 0 en sortie autant de fois que la valeur du registre C. Affichez dans la sortie 4 chiffres de 0. (2p)
  5. Écrivez un programme qui comprend une fonction qui fait le swap entre deux variables. Envoyer les paramètres de fonction à l'aide des registres. Retournez le swap entre les registres A et B. (2p).
  6. Écrivez un programme et une fonction qui calcule le reste de la division de deux variables. Envoyer les paramètres de fonction à l'aide de la pile. Verifiez pour 7%3. (1.5p).
  7. Écrivez un programme et une fonction qui calcule la taille d'une chaîne stockée en tant que variable. Vous pouvez partir de l'exemple du premier programme. La fonction doit être rappelable de l'intérieur et vous devez retourner la dimension de la chaîne dans le registre B. (2p)