Exercices

Chapitre 2: Jeu d'instructions du processeur

Rappels des instructions utilisées dans ce cours.

instruction codage signification
LDA 0 Charge l’état de la case mémoire donnée en argument dans le registre A.
LDB 1 Charge l’état de la case mémoire donnée en argument dans le registre B.
STA 2 Stocke l’état du registre A dans la case mémoire donnée en argument.
STB 3 Stocke l’état du registre B dans la case mémoire donnée en argument.
ADD 4 Additionne le contenu des registres et le stocke dans le registre donné en argument.
DEC 5 Décrémente la valeur contenue dans le registre donné en argument, c’est à dire soustrait 1.
JMP 6 Fait “sauter”(JUMP) le programme vers une ligne donnée en argument
JMPZ 7 Comme JUMP, mais uniquement si le registre A est 0.
END 8 Termine le programme

Addition simple

Écrire une séquence d'instructions qui multiplie par 5 le nombre contenu dans la case mémoire 10 et stocke le résultat dans la case mémoire 11.

Traduire les instrcuctions en langage machine binaire avec des mots de 4 bits(3= 0011 par exemple).

Différence

Écrire un programme qui lit deux valeurs x et y contenues respectivement dans les cases mémoires 11 et 12, calcule la différence yxy - x et stocke le résultat à l'adresse 13. On suppose que ces deux valeurs sont des nombres entiers positifs.

Compléter ce programme pour qu'il stocke la valeur 0 à l'adresse 15 si x est égal à y, ou la valeur x sinon.

Multiplication

Écrire un programme qui multiplie la valeur contenue à la case mémoire 12 par celle contenue dans la case mémoire 13 et stocke le résultat à l'adresse 14. On suppose que ces valeurs sont des nombres entiers positifs.

Quel problème l'écriture de ce programme pose-t-elle ? Quelle modification du processeur permettrait de contourner ce problème et donc de simplifier le programme ?

TP: Ecrire de l'assembleur sur un simulateur

La page suivante propose d'écrire quelques programmes en assembleur.

https://pixees.fr/informatiquelycee/n_site/nsi_prem_sim_cpu.html

Elle utilise la simulation de Peter Higginson qui simule le langage assembleur AQA.

http://www.peterhigginson.co.uk/AQA/