TP5 - Introduction `a l`archi LC3, jouons avec le simulateur 1

publicité
L2 Info - 2014-2015
Architecture Matérielle et Logicielle
L. Gonnord & N. Louvet
http://laure.gonnord.org/pro/teaching/archiL2.html
TP5 - Introduction à l’archi LC3, jouons avec le simulateur
Objectifs
— Utiliser le simulateur de l’architecture LC3 pour comprendre le jeu d’instructions.
— Écrire des programmes simples en langage machine LC3, puis en assembleur LC3.
Ce tp s’inspire fortement des “lab 6” et “lab 7” http://castle.eiu.edu/∼mathcs/mat3670/index/
index.html, avec l’aimable permission de leurs auteurs . . .
Nous allons utiliser le simulateur LC3 nommé PennSim dont la documentation est disponible
à l’adresse (ou à partir de la page du cours) :
http://castle.eiu.edu/∼mathcs/mat3670/index/Webview/pennsim-guide.html
Nous vous fournissons une archive tgz sur la page du cours. Cette archive contient :
— le logiciel sous la forme d’un .jar.
— les fichiers : lc3os.asm : OS simple (implémentation des entrées/sorties et lancement
d’autres programmes), le fichier de test p0.asm, ainsi que les programmes du TP.
1
Jouons avec le simulateur de LC3
Exercice 1 (Installation, documentation). Après avoir désarchivé le .tgz fourni,
1. Lire attentivement la documentation du logiciel.
2. Assembler et exécuter l’OS et le programme de test.
Exercice 2 (Exécution du programme traité en DM). Vous avez en DM réalisé le décodage
d’un programme LC3 écrit en langage machine. Une correction se trouve Figure 1. Parcourir
rapidement cette correction, puis assembler et lancer la simulation pas à pas sur le fichier
tp5b.asm. Bien comprendre toutes les étapes avant de passer à l’exercice suivant. On remarquera
que le simulateur LC3 donne l’équivalent en language d’assemblage des instructions machine
considérées.
Exercice 3 (I/0). Écrire un programme en language machine LC3 qui écrit 10 fois le caractère
’Z’ sur l’écran. On utilisera l’instruction TRAP avec le code x22=PUTS, et on se reportera à la
documentation (table A.2) pour l’utiliser.
2
Écriture et simulation de programmes en assembleur LC3
Jusqu’à présent nous avons écrit des programmes en remplissant la mémoire directement
avec les codages des instructions. Nous allons maintenant écrire des programmes de manière
plus simple, en écrivant les instructions en assembleur LC3.
Exercice 4. Exécution, modification
1. Prévoir le comportement des fichiers tp5c.asm et tp5d.asm. Vérifier avec le simulateur.
2. Écrire un programme assembleur LC3 qui calcule le min et le max de deux entiers, et
stocke le résultat à un endroit précis en mémoire, de label min. Tester avec différentes
valeurs.
TP5 Archi, L2 Info - 2014-2015, L. Gonnord & N. Louvet
1/4
Mathematics 3670: Lab 6
3
%ZIGPEMQEFPITIVQMWWMSRHIWEYXIYVW;MPPMEQ7PSYKLIX%RHVI[1IVX^YRMZ)WXIVR-PPMRSMW
Address
Content
x3000
x5020
x3001
Content (binary)
0101
000
000
1
0 0000
Instruction details
AND
DR = R0
SR = R0
imm = 1
imm5 = x00
R0 = R0 AND SEXT(x00)
setcc() 6
%((
(6!6 76!6 MQQ !
x1221
6
%(( 6 6
x3002
0)% (6 ! 6
xE404
S½WIX !\
6
\
$¾R
6 ! 4'
x3003
0(6 (6!6 FEWI6!6
S½WIX !\
x6681
6
PSST
x3004
QIQ?\
6
A
%((
(6!6 76!6 MQQ !\
x1262
6
%(( 6 6
x3005
\
%((
(6!6 76!6 MQQ !
x16FF
6
%(( 6 6
x3006
&6T
x03FD
4'
¾R
x3007
xF025
x3008
x0006
6
1111 0000 0010 0101
S½WIX!
4'
TRAP
trapvect8 = x25
halt execution
WM 6 " KSXS PSST
,%08
data word
HSRR¬I
Figure 2: A sequence of machine instructions for the LC-3 computer. Compare with lab6b.asm.
84%VGLM
6
Codes fournis
Listing 1 – ’tp5b.asm’
; ; Author : B i l l S l o u g h f o r MAT 3670
; ; t p 5 b pour LIF6 − Laure Gonnord Oct 2014 .
; ; This program i s i n t e n t i o n a l l y l a c k i n g comments , s i n c e p a r t o f t h e g o a l
; ; f o r t h i s l a b i s t o i n v e s t i g a t e t h e i n s t r u c t i o n s e t o f t h e LC−3 computer
.ORIG X3000
; s p e c i f y t h e ” o r i g i n ” ; i . e . , where t o l o a d i n memory
; machine i n s t r u c t i o n s + d a t a
.FILL x5020
.FILL x1221
.FILL xE404
.FILL x6681
.FILL x1262
.FILL x16FF
.FILL x03FD
.FILL xF025
.FILL x0006 ; d a t a word
.END
Listing 2 – ’tp5c.asm’
; ; Author : B i l l S l o u g h MAT 3670
; ; A f i r s t asse mbly −l a n g u a g e LC−3 program
; ; This i s a v a r i a t i o n on t h e world−famous ” H e l l o , w o r l d ” program
; ; known t o many programmers. −−
; ; Adapted f o r LIF6/ Univ Lyon1 by Laure Gonnord , o c t 2014 .
; ; Notes :
; ; 1 . HALT i s e q u i v a l e n t t o TRAP x25 ( s e e Ta b le A.2 , page 543)
; ; 2 . PUTS i s e q u i v a l e n t t o TRAP x22
; ; 3 . LEA ( Load E f f e c t i v e Address ) u s e s t h e IMMEDIATE a d d r e s s i n g mode
; ; 4 . \n r e p r e s e n t s t h e ” n e w l i n e ” c h a r a c t e r
.ORIG x3000 ; s p e c i f y t h e ” o r i g i n ” ; i . e . , where t o l o a d i n memory
LEA R0 ,HELLO ; R0 = a d d r e s s o f o u t p u t s t r i n g
PUTS ; w r i t e (” H e l l o , w o r l d ! \ n ”)
LEA R0 ,COURSE ; R0 = a d d r e s s o f o u t p u t s t r i n g
PUTS ; w r i t e (” LIF6 ”)
LEA R0 , UNIV ; R0 = a d d r e s s o f o u t p u t s t r i n g
PUTS ; w r i t e (” Univ Lyon1 ”)
HALT ;
HELLO .STRINGZ ” H e l l o , world ! \ n”
COURSE .STRINGZ ” LIF6 \n”
UNIV .STRINGZ ” Univ Lyon1\n”
.END
TP5 Archi, L2 Info - 2014-2015, L. Gonnord & N. Louvet
3/4
Listing 3 – ’tp5d.asm’
; ; Author : B i l l S l o u g h f o r MAT 3670
; ; M o d i f i e d by Laure Gonnord f o r LIF6 u n i v l y o n 1 .
; ; Example a s s e m b l y l a n g u a g e program w i t h a s i m p l e l o o p
;;
; ; D i s p l a y s a l i n e o f N a s t e r i s k s , where N i s a g i v e n v a l u e i n memory.
.ORIG x3000 ; s p e c i f y t h e ” o r i g i n ” ; i . e . , where t o l o a d i n memory
LD R1 ,N ;
NOT R1 , R1 ;
ADD R1 , R1,#1 ; R1 = −N
LOOP
AND R2 , R2,#0 ; R2 = 0 ;
ADD R3 , R2 , R1 ; w h i l e (R2 < N)
BRzp ELOOP ;
LD R0 ,STAR ; R0 = ’ ∗ ’
OUT ; w r i t e ( ’ ∗ ’ )
ADD R2 , R2,#1 ; R2 = R2 + 1
BRnzp LOOP ; end w h i l e
ELOOP
LEA R0 ,NEWLN ;
PUTS ; w r i t e ( ’ \ n ’ )
STOP HALT
N .FILL 6 ; how many c h a r a c t e r s t o d i s p l a y ?
STAR .FILL x2A ; t h e c h a r a c t e r t o d i s p l a y
NEWLN .STRINGZ ”\n”
.END
TP5 Archi, L2 Info - 2014-2015, L. Gonnord & N. Louvet
4/4
Téléchargement