Contrôle « Architecture des microprocesseurs » ECE – INGE3 / PREPA MASTER
Eléments de correction Durée : 2 heures - mars 2003
4/14
Partie B
Programmation dans le langage assembleur du microprocesseur 68000 de
MOTOROLA
B.1. Généralités (3 points / 14mn)
B.1.1) Donnez le nom d’une mémoire volatile.
R.A.M. : Random Access Memory ou mémoire à accès aléatoire. Vous pouviez donner
le nom des mémoires dérivées : SRAM, DRAM, …
B.1.2) Quels sont les différents bits du registre de code condition ?
Le registre de code condition (CCR) est constitué de 5 bits dont l’état dépend de
l’instruction ayant été exécutée. Les autres bits sont à zéro.
0 0 0 X N Z V C
B.1.3) Proposez une solution permettant de mettre à zéro le cinquième bit du registre de code
condition en partant de la droite. Décrivez convenablement votre solution.
Il s’agit de mettre à zéro le bit X du registre CCR.
Le jeu d’instructions du 68000 possède l’instruction ANDI to CCR permettant de
remettre à zéro le bit voulu du registre de code condition.
Exemple : ANDI #%1110 1111, CCR
Il est rappelé que l’opé ration logique AND a pour élément absorbant la valeur 0 et
pour élément neutre la valeur 1 ; Seul le bit X sera modifié par cette opération
de masquage.
B.1.4) Convertir la valeur $EF en binaire.
$EF ? %1110 1111 : la conversion est directe. Certains peuvent toutefois préférer
passer en décimal, puis effectuer des divisions par deux successives (c’est une
mauvaise méthode qui donne quand même le bon résultat).
B.1.5) Décrire la fonction de la ligne suivante dans un programme écrit en langage assembleur
68000.
DC.L 2
C’est une directive d’assemblage « define data constant » qui permet d’enregistrer
dans la mémoire des opérandes. Le format de l’opérande pour cette ligne est
« .L » soit 32 bits. On enregistrera donc dans la mémoire la valeur « 2 » sur 32
bits soit $00000002 ou %0000 0000 0000 0000 0000 0000 0000 0010
B.1.6) Quel est le rôle du registre PC du processeur 68000 ?
Le registre PC « program counter » contient l’adresse de la prochaine instruction
devant être exécutée. Son contenu est incrémenté en fonction du nombre
d’octets de la dernière instruction exécutée. La valeur de cette adresse est
toujours paire !
B.1.7) Montrez que l’instruction, dbf est équivalente à l’instruction dbra
Info: consulter la description de l’instruction « DBcc » dans le document annexe/jeu
d’instructions.
Il faut vous servir du polycopié « annexes » dans lequel vous avez le jeu
d’instructions (page 12 instruction DBcc) ;
« DBcc » : Cette instruction réalise trois opérations différentes : test, décrémente,
branche.
Si la condition « cc » est fausse, alors décrémenter « D » le registre indiqué
dans l’instruction et brancher « B » à l’adresse indiquée également dans l’instruction.
Si le résultat de la décrémentation donne « -1 » le rebouclage se termine et
passage à l’instruction suivante.
Dans le cas qui vous est proposé « DBF », « cc » est la condition « F », soit « jamais
égal » ou « never equal »