ASR1 bis DUT Informatique 1A
IUT A de Lille – USTL 2007–2008
Architecture des ordinateurs
TP 1 : Simulateur
Nous allons utiliser le logiciel Easy68K qui comporte :
un ´editeur qui nous permettra de saisir les programmes ´ecrits en assembleur (code source :
texte),
un assembleur pour traduire le code source saisi en langage machine (binaire),
un simulateur qui nous permettra de suivre l’ex´ecution du programme instruction par
instruction `a travers l’´evolution du contenu des registres et de la m´emoire.
1 Saisie du programme
Lancer le programme Edit68K, une fenˆetre doit s’ouvrir. Cette fenˆetre contient le code
source d’un programme r´eduit `a son point de d´emarrage indiqu´e par l’´etiquette START et les
deux instructions de terminaison : MOVE.B #9,D0 qui place le code 9 dans D0 pour que l’ins-
truction TRAP #15 termine le programme. Entre ces deux ´el´ements vous aller pouvoir ajouter
les instructions de vos propres programmes. Commencez par le programme suivant :
MOVEA # 1234, A0
CLR.L D1
NOT.W D1
MOVE.L # ABCD,(A0)
ADD.L D1,(A0)
Vous pouvez constater qu’il est possible de commenter vos programme en indiquant `a la
droite des instructions ce qu’elles font, comme par exemple Halt Simulator. Comme il est
tr`es difficile de relire un code non commene mˆeme pour la personne qui l’a ´ecrit, vous devrez
commenter tous vos programme. Commencez tout de suite en d´ecrivant les ´etapes que r´ealisent
les instructions que vous venez de saisir.
2 Assemblage et ex´ecution
Une fois le programme saisi, vous pouvez le sauvegarder (avec extension .x68) puis l’assembler
en s´electionnant la commande Assemble Source du menu Project.
Une nouvelle fenˆetre s’ouvre indiquant entre autre le nombre d’erreurs relev´ees `a l’assem-
blage. Si le code n’est pas correct, les erreurs sont report´ees dans une fenˆetre en dessous du code
source avec le num´ero de la ligne du code fautive. S’il n’y a pas d’erreur, vous pouvez ex´ecuter
le code.
Deux fenˆetres apparaissent, vous pouvez fermer celle nomm´ee Sim68K I/O pour le moment.
La seconde va nous permettre de lancer l’ex´ecution du programme et d’observer l’´etat du pro-
cesseur. Dans le menu View s´electionnez Memory pour que le contenu de la m´emoire s’affiche
dans une autre fenˆetre. Vous pouvez donc surveiller `a la fois les registres et la m´emoire. Notez
que sur la mˆeme ligne qu’une instruction se trouvent `a gauche l’adresse ou elle est stock´ee en
m´emoire et son code binaire sur 16 bits suivi des extensions ´eventuelles.
Nous disposons de plusieurs modes d’ex´ecution :
en s’arrˆetant seulement au curseur. Pour cela il faut d’abord cliquer sur les points
verts associ´es `a chaque instruction, ils passent alors au rouge et c’est l`a que s’arrˆetera
l’ex´ecution.
1
comme pr´ec´edemment, l’ex´ecution s’arrˆete aux curseurs, mais les instructions se font
pas `a pas, s´epar´ees par un intervalle de temps que l’on peut r´egler dans le menu Option
Auto Trace options.
pour ex´ecuter une seule instruction `a la fois.
pour ex´ecuter d’un trait.
pour remettre le simulateur en configuration initiale.
pour recharger le code binaire.
3 Entr´ees/Sorties
Pour pouvoir entrer des valeurs, nombres sign´es ou non ou chaˆınes de caract`eres, vous uti-
liserez l’instruction TRAP #15. Suivant le code plac´e dans D0, cette instruction a des actions
diff´erentes, dans ce TP vous pourrez avoir besoin de :
code 15 : afficher le nombre non sign´e plac´e dans D1.L converti dans la base (de 2 `a 36)
contenue dans D2.B
code 2 : lire une chaˆıne de caract`ere au clavier et la placer en m´emoire en (A1) et la
terminer par NULL, sa longueur est plac´ee dans D1.W
code 5 : lire un seul caract`ere au clavier et le placer dans D1.B
code 13 : afficher la chaˆıne plac´ee en m´emoire en (A1) (qui doit se terminer par NULL)
suivie de CR et LF
code 14 : comme 13 mais sans CR et LF
le code de NULL est tout simplement 00
4 Exercice : Code secret ...
1. Ecrire un programme qui lit une chaˆıne de caract`eres au clavier et la place `a l’adresse 10
en m´emoire, et ensuite affiche le code ascii en hexad´ecimal de chacun de ses caract`eres l’un
apr`es l’autre. Pour cela vous pourrez utiliser une structure tant que et un mode d’adressage
indirect vu en cours.
2. Traduire en assembleur la structure selon (ie : r´efl´echir aux comparaisons et aux branche-
ments `a effectuer) :
selon x :
cas x = valeur 1 faire actions 1
cas x = valeur 2 faire actions 2
. . .
cas x = valeur n faire actions n
fin selon
3. Utiliser la structure selon et la premi`ere question pour coder la chaˆıne lue en rempla¸cant
(directement en m´emoire) les caract`eres par d’autres. Par exemple, remplacer les ’e’ par
des ’s’, les ’l’ par des ’z’ et les ’n’ par des ’d’. Afficher ensuite la nouvelle chaˆıne.
4. Modifier le programme obtenu pour ´ecrire la chaˆıne modifi´ee en m´emoire juste apr`es la
chaˆıne initiale et non `a la place de celle-ci. Vous pouvez vous aider d’un mode d’adressage
indirect vu en cours.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !