énoncé - Laure

Download Report

Transcript énoncé - Laure

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
%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