Vous êtes sur la page 1sur 4

Licence Electronique (L3) Université de Mostaganem

Décembre 2022 - Durée : 1h20 FST – Dpt GE

Examen de la matière : Systèmes à Microprocesseurs (SAM) Partie I

Nom et prénom : ………………………Solution Type…………………………Groupe : ……….

Exercice 1 (6 pts)
1. Donner les code ASCII des caractères suivants : (1 pt)
‘/’ = $2F…… ; ‘8’ =…$38...; ‘K’ =…$4B...; ‘p’ =…$70...;

2. Que peut représenter le code binaire suivant : (01101100)2 pour les considérations suivantes :
(0,75 pt)
Nombre non signé : …(108)10… ; nombre signé : (+108)10…….
Code ASCII : …’l’…. ; code BCD : $6C ce n’est pas un code BCD.

3. Que peut représenter le code binaire suivant : (10000111)2 pour les considérations suivantes :
(0,75 pt)
Nombre non signé : …(135)10… ; nombre signé : …(-121)10….
Code ASCII : $87 ce n’est pas un code ASCII. ; code BCD : …(87)10..

4. Une zone mémoire possède 8K octets. Si l'adresse haute de cette zone est $5FFF, quelle est
l'adresse basse ? ➔ 8K octets = 8192 = $2000
C.M = A.H - A.B + 1 ➔ A.B = A.H – C.M +1 = $5FFF - $2000 +1 = $4000 (0,75 pt)

5. Quelle est la capacité d’une mémoire RAM ayant un boitier avec un bus d’adresse :
(A12 A11 ……A2 A1 A0)
(A12 A11 ……A2 A1 A0) → 13 lignes ➔ Cap. Mem. = 213 = 23 x 210 = 8 Koctets (0,5 pt)

6. Une mémoire ROM avec une capacité de 16 Ko, quelle est la taille de son bus d’adresse ?
Cap. Mem. = 16 Ko = 16 x 1024 = 24 x 210 = 214 ➔ la taille du B.A. = 14 lignes (0,5 pt)

7. L'adresse basse d'une zone mémoire est $2000. Son adresse haute est $27FF. Quelle est la
capacité de cette zone mémoire ?
C.M = A.H - A.B + 1 = $27FF - $2000 + 1 = $800 = 2048 = 2x 1024 = 2 Koctets (0,75 pt)

8. Donner la séquence d’instruction d’initialisation qui permet la configuration suivante du


PIA6821: (1 pt)
Le PortA : « PA0 PA1 PA2 PA3 » configurées en sortie, « PA4 PA5 PA6 PA7 » configurées en entrée ;
Le PortB : « PB0 PB1 » configurées en entrée et le reste des lignes doivent être configurés en sortie.

CLR CRA (ou CLR $8001) .... CLR CRB (ou CLR $8003)..........
LDA #%00001111 ................................. LDA #%11111100 ....................................
STA DDRA (ou STA $8000)..... STA DDRB (ou STA $8002) ..........
LDB #$04 .............................................. STB CRB (ou STB $8003) ..........
STB CRA (ou STB $8001) ...... .....................................................................

1
Exercice 2 (6 pts)

On suppose que l’espace mémoire à partir de l’adresse $0200 est organisé de la façon
suivante :
$ 0200 $ 02
$ 0201 $ 04
$ 0202 $ 2C
$ 0203 $ 01
$ 0204 $ F0
$ 0205 $ 12
$ 0206 $ FF
$ 0207 $ 58

➢ Quels sont les résultats obtenus suite aux instructions suivantes (avec DP = $02) :

Résultats Indicateurs
N Z V C
0 0 0 0
CLRA ……A = $00 ……………………(0,75 pt). 0 1 0 0
LDB #$C0 ……B = $C0 ……………………(0,75 pt). 1 0 0 0
ADDD $0206 D = $00C0 + $FF58 = $0018……(1 pt). 0 0 0 1
STD $09 [$0209] = $00 ; [$020A] = $18 (1 pt) 0 0 0 1
LDX $0200 ……X = $0204 ……………………(1 pt) 0 0 0 1
NEG ,X+ [$0204] = $10… ; X = $0205…… (1,5 pt) 0 0 0 0

2
Licence Electronique (L3) Université de Mostaganem
Décembre 2022 FST – Dpt GE
Durée : 1h20

Examen de la matière : Systèmes à Microprocesseurs (SAM)


Partie II

Documents autorisés : fiches techniques, code ASCII, tableau des conditions et résumés des
chapitres uniquements (version papier !!)

Exercice 1 : (3,5 pts)


𝑥+𝑦+𝑧
Ecrire un programme en assembleur qui effectue le calcul suivant : 𝑆 = , avec x,
2

y et z sont des nombres signés codés sur 8 bits et leurs adresses respectives sont adx,
ady et adz. Le résultat S, codé sur 16 bits, doit être stocké à partir de l’adresse ads.

adx EQU $0030


ady EQU $0031 (0,25pt)
adz EQU $0032
ads EQU $0050
ORG $FC00
LDB adrx (0,5pt)
SEX
STD ads (0,25pt)
LDB ady (0,5pt)
SEX
ADDD ads (0,25pt)
STD ads (0,25pt)
LDB adz (0,5pt)
SEX
ADDD ads (0,25pt)
ASRA (0,5pt)
RORB
STD ads (0,25pt)
END

3
Exercice 2 : (4,5 pts)

adtab EQU $0300


Nd EQU $64 ; 100 données (0,25pt)
cptpair EQU $0042
cptimp EQU $0040
ORG $FC00
CLR cptimp (0,25pt)
LDX #adtab (0,25pt)
LDB #Nd (0,25pt)
boucle:
LDA ,X+ (0,5pt)
BITA #%00000001 ; pour tester le bit b0, (0,5pt)
BEQ paire ;si Z=1 ➔ b0 = 0 alors la donnée est paire ; (0,5pt)
INC cptimp ;si non ➔ b0 = 1 alors la donnée est impaire ; (0,5pt)
paire:
DECB (0,25pt)
BNE boucle (0,25pt)
LDA #Nb (0,25pt)
SUBA cptimp ; un nombre nul est considéré comme pair !! (0,5pt)
STA cptpair (0,25pt)
END

Vous aimerez peut-être aussi