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

L2 Info - 2014-2015
Architecture Mat´erielle et Logicielle
L. Gonnord & N. Louvet
http://laure.gonnord.org/pro/teaching/archiL2.html
TP5 - Introduction `a l’archi LC3, jouons avec le simulateur
Objectifs
Utiliser le simulateur de l’architecture LC3 pour comprendre le jeu d’instructions.
´
Ecrire 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´e PennSim dont la documentation est disponible
`a l’adresse (ou `a 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´ementation des entr´ees/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`es avoir d´esarchiv´e le .tgz fourni,
1. Lire attentivement la documentation du logiciel.
2. Assembler et ex´ecuter l’OS et le programme de test.
Exercice 2 (Ex´ecution du programme trait´e en DM).Vous avez en DM r´ealis´e le d´ecodage
d’un programme LC3 ´ecrit en langage machine. Une correction se trouve Figure 1. Parcourir
rapidement cette correction, puis assembler et lancer la simulation pas `a pas sur le fichier
tp5b.asm. Bien comprendre toutes les ´etapes avant de passer `a l’exercice suivant. On remarquera
que le simulateur LC3 donne l’´equivalent en language d’assemblage des instructions machine
consid´er´ees.
Exercice 3 (I/0).´
Ecrire un programme en language machine LC3 qui ´ecrit 10 fois le caract`ere
’Z’ sur l’´ecran. On utilisera l’instruction TRAP avec le code x22=PUTS, et on se reportera `a la
documentation (table A.2) pour l’utiliser.
2´
Ecriture et simulation de programmes en assembleur LC3
Jusqu’`a pr´esent nous avons ´ecrit des programmes en remplissant la m´emoire directement
avec les codages des instructions. Nous allons maintenant ´ecrire des programmes de mani`ere
plus simple, en ´ecrivant les instructions en assembleur LC3.
Exercice 4.Ex´ecution, modification
1. Pr´evoir le comportement des fichiers tp5c.asm et tp5d.asm. V´erifier avec le simulateur.
2. ´
Ecrire un programme assembleur LC3 qui calcule le min et le max de deux entiers, et
stocke le r´esultat `a un endroit pr´ecis en m´emoire, de label min. Tester avec diff´erentes
valeurs.
TP5 Archi, L2 Info - 2014-2015, L. Gonnord & N. Louvet 1/4
Mathematics 3670: Lab 6 3
Address Content Content (binary) Instruction details
x3000 x5020 0101 000 000 1 0 0000 AND
DR = R0 SR = R0
imm = 1 imm5 = x00
R0 = R0 AND SEXT(x00) setcc()
x3001 x1221
x3002 xE404
x3003 x6681
x3004 x1262
x3005 x16FF
x3006 x03FD
x3007 xF025 1111 0000 0010 0101 TRAP
trapvect8 = x25
halt execution
x3008 x0006 data word
Figure 2: A sequence of machine instructions for the LC-3 computer. Compare with lab6b.asm.
%ZIGPEMQEFPITIVQMWWMSRHIWEYXIYVW;MPPMEQ7PSYKLIX%RHVI[1IVX^YRMZ)WXIVR-PPMRSMW
84%VGLM


%((
(6!676!6MQQ!
%((66
6 
6 
 0)%(6!6S½WIX!\
6!4' 6 \
¾R
$¾R
 0(6(6!6FEWI6!6
S½WIX!\
6 QIQ?\A 6 \
HSRR¬I
 %((
(6!676!6MQQ!\
%((66 6 6

%((
(6!676!6MQQ!
%((66 6 6
 &6TS½WIX!
4' 4' WM6"KSXSPSST
PSST
,%08

Codes fournis
Listing 1 – ’tp5b.asm’
; ; Author : B i l l Sl ough f o r MAT 3670
; ; tp5b 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 nc e p a r t o f th e g oa l
; ; f o r t h i s l a b i s to i n v e s t i g a t e th e i n s t r u c t i o n s e t o f t he LC3 computer
.ORIG X3000
; s p e c i f y t h e o r i g i n ” ; i . e . , where to l o a d i n memory
; machine i n s t r u c t i o n s + data
.FILL x5020
.FILL x1221
.FILL xE404
.FILL x6681
.FILL x1262
.FILL x16FF
.FILL x03FD
.FILL xF025
.FILL x0006 ; data word
.END
Listing 2 – ’tp5c.asm’
; ; Author : B i l l S lough MAT 3670
; ; A f i r s t assembly language LC3 program
; ; This i s a v a r i a t i o n on t he worldfamous ” He llo , worl d ” program
; ; known to many programmers.
; ; Adapted f o r LIF6/ Univ Lyon1 by Laure Gonnord , o ct 2014 .
; ; Notes :
; ; 1 . HALT i s e q u i v a l e n t t o TRAP x25 ( s ee Table 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 ses t he IMMEDIATE a d d re ss in g mode
; ; 4 . \n r e p r e s e n t s t h e ne wl i ne c h a r a c t e r
.ORIG x3000 ; s p e c i f y t he o r i gi n ; i . e . , where to l o a d i n memory
LEA R0 ,HELLO ; R0 = ad d r e ss o f o u tpu t s t r i n g
PUTS ; w r i t e ( H ell o , wo rld ! \n)
LEA R0 ,COURSE ; R0 = addre ss o f o utp ut s t r i n g
PUTS ; w r i t e (” LIF6 ” )
LEA R0 , UNIV ; R0 = a d d r ess o f o utpu t s t r i n g
PUTS ; w r i t e ( Univ Lyon1 ”)
HALT ;
HELLO .STRINGZ ” He ll 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 loug h f o r MAT 3670
; ; Mo dif ied by Laure Gonnord f o r LIF6 uni v l y o n 1 .
; ; Example assembly la n gua g e program w ith a si m p l e loop
; ;
; ; D is p la ys a l i n e of N a s t e r i s k s , where N i s a g iv en v a l ue in memory.
.ORIG x3000 ; s p e c i f y t he o r i gi n ; i . e . , where to l o a d i n memory
LD R1 ,N ;
NOT R1 , R1 ;
ADD R1 , R1,#1 ; R1 = N
AND R2 , R2,#0 ; R2 = 0 ;
LOOP 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
1 / 4 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 !