You are on page 1of 5

IUT Villetaneuse Architecture des ordinateurs Jeudi 06 mars 2002-2003

GTR 1re anne Contrle Long n1 p1/5


Grp Nom
A Contrle long n1
B
Calculatrice et documents interdits - Dure 3 heures - Rpondre sur la feuille
C

/15 I. Questions de cours


Expliquez brivement les concepts informatiques qui se cachent derrire les noms suivants.
Vous pouvez vous aider dun terme pour lexplication dun autre, donc lisez bien toute la liste avant de
rpondre pour ne pas vous rpter inutilement.

1. Tableau peut tre transmise lappelant


Des valeurs la suite en mmoire
localises par adresse de dbut

7. Interruption logicielle
Moyen dappeler une fonction
(appeles traitants)
2. Adressage indirect sans en connatre ladresse
Moyen daccs une donne en mmoire
localise en mmoire
par une adresse range
dans un registre
utile pour laccs un tableau 8. Table dindirection
(ou des vecteurs dinterruption)
Lieu de stockage des adresses
3. Pile des fonctions appeles par
Un tableau de valeurs la gestion INT n
automatique et transparente A l@4xn, on a l@ de la fonction n
par un pointeur
localisant le haut (dernire valeur)
permettant lajout dune valeur dessus 9. Fonctions BIOS
( la suite de celles qui y sont dj) Bibliothque de fonctions bas niveau
et le retrait de la dernire pose accessibles par interruptions logicielles
4. Procdure ou fonction stockes dans la ROM de la machine
Suite dinstructions en mmoire
que lon excute sur appel
en donnant son adresse
de plusieurs endroits diffrents
et qui peut revenir automatiquement 10. Fonctions DOS
lendroit de lappel fonctions de moins bas niveau
accessibles par une fonction BIOS
5. Paramtres dune fonction (21H)
Valeurs passe une fonction diffrencies par un paramtre de la
peuvent tre passe par pile fonction BIOS
ou par registre

6. Valeur dune fonction


A la fin dune procdure
une valeur calcule
IUT Villetaneuse Architecture des ordinateurs Jeudi 06 mars 2002-2003
GTR 1re anne Contrle Long n1 p2/5

/15 II. Machine


A. Construction
1. Quels sont les liens physiques entre le processeur et la mmoire ?
le bus mmoire constitu
du bus dadresse
du bus de donnes
du bus de contrle
2. Quel est le rle des registres "cachs" RI, RTA, RTAX (ou RTUAL) et IP (que stockent-il) ?
RI stocke le code opration en vue de son dcodage

RTA stocke une adresse fournie pour aller chercher une valeur en mmoire

RTAX stocke la valeur combiner AX par lopration spcifie

IP stocke ladresse de la prochaine instruction excuter

B. Fonctionnement de la machine
Donnez, dans lordre, les transferts lmentaires effectues au cours de lexcution des instructions
suivantes. Les transferts lmentaires sont de registre registre, de registre bus ou de bus registre (il
faut alors prciser lidentit des registres, des bus, voire des valeurs transmises par exemple dans le cas
dincrmentations)
1. INC AX 3. ADD AX,[BX]
*IP @bus *IP @bus
*databus RI *databus RI
AX + 1 AX BX @bus
*IP + ? IP databus RTAX
* : ces 3 lignes se retrouvent partout. AX + RTAX AX
2. MOV AX,[A320]
*IP + ? IP
*IP @bus 4. PUSH AX
*databus RI *IP @bus
IP + ? IP *databus RI
databus RTA SP - 2 SP
RTA @bus SP @bus
databus AX AX databus
*IP + ? IP *IP + ? IP
C. Bloc dinstructions
Dans le cadre de la rupture du schma linaire dexcution des instructions, expliquez la diffrence
entre un saut (JMP), un appel (CALL) et une interruption logicielle (INT).
JMP va ladresse donne (qui dailleurs est calcule en relatif)
(le retour - non prvu - est faire par un autre JMP).
CALL dispense de fournir ladresse de retour
en empilant ladresse de retour (IP) en prvision de lutilisation de RET.
INT dispense mme de fournir ladresse destination
en allant la chercher dans la table dindirection (empile CS:IP et tat, retour IRET)
IUT Villetaneuse Architecture des ordinateurs Jeudi 06 mars 2002-2003
GTR 1re anne Contrle Long n1 p3/5

/10 III. Assembleur


1. A quoi servent les dclarations assembleur suivantes ?
ASSUME DS:Data
Data SEGMENT
ch_in DB " Cest quoi tous ces blancs ?",0
ch_out DB 64 DUP(?)
Data ENDS
Bloc de donnes (segment)
rservation despace mmoire pour stocker des valeur,
initialisation,
localisation de ces espaces en mmoire (adresse) par des identificateurs (#variables).
DB = unit octet (Byte),
"" dfinit la valeur dune chane de caractres, taille dtermine automatiquement
0 = un octet de plus, de valeur 0 (sert localiser la fin)
64 dup = donne une taille (64 octets),
et la valeur (? = non initialise)
2. A quoi servent les dclarations assembleur suivantes ?
ASSUME SS:Pile
Pile SEGMENT STACK
DW 64 DUP(?)
vide EQU THIS WORD
Pile ENDS
Bloc de pile (segment)
Rserver de la place mmoire pour la pile
Localiser le bas (sous la pile)
3. A quoi servent les instructions suivantes ?
ASSUME CS:Code
Code SEGMENT
debut: MOV AX,Data
MOV DS,AX
MOV AX,Pile
MOV SS,AX
MOV SP,vide
MOV BP,SP
...
fin: MOV AH,4CH
INT 21H
Code ENDS
END debut
Bloc dinstructions (segment)
Les premires lignes sont linitialisation du registre DS,
DS est la partie poids fort des adresses des donnes en bloc donnes
Les suivantes sont linitialisation du registre SS,
CS est la partie poids fort des adresses des donnes en pile
Ensuite initialisation des pointeurs de pile

Les dernires instructions sont lappel une fonction du DOS,


qui lui rends la main (fin de programme)
re
END dbut dfinit le point dentre du programme (la 1 instruction)
IUT Villetaneuse Architecture des ordinateurs Jeudi 06 mars 2002-2003
GTR 1re anne Contrle Long n1 p4/5
IV. Programmation
/10 1. Ecrire un programme qui supprime les espaces au dbut dune chane de caractre :
le programme remplit ch_out partir de ch_in en ayant supprim les espaces au dbut.
On suppose que les dclarations du III ont t faites et que lon peut les utiliser.
Attention : la chane fournie pourrait tre tout autre (mais se terminerait par 0).
MOV BX,offset ch_in

espc: MOV AL,[BX] ; on passe tous les espace


CMP AL,0 ; si la chane est vide finir
JE copy
CMP AL," "
JNE memo
INC BX
JMP espc

memo:MOV CX,BX ; une sauvegarde de l@ource


MOV BX,offset ch_out
MOV DX,BX ; une sauvegarde de l@dest

copy: MOV BX,CX ; copie des caractres


MOV AL,[BX]
MOV BX,DX
MOV [BX],AL
CMP AL,0
JE fin
INC CX
INC DX
JMP copy

fin:
IUT Villetaneuse Architecture des ordinateurs Jeudi 06 mars 2002-2003
GTR 1re anne Contrle Long n1 p5/5

/10 V. Pile
1. Voici une fonction assembleur et son appel.
Voici lappel : on suppose que DX contient ladresse de la chane de caractres suivie dun 0.
PUSH DX
CALL fun ;1
ADD SP,2 ;4
MOV DX,AX
MOV AH,09H
INT 21H
Voici le corps de la fonction :
fun PROC NEAR
PUSH BP
MOV BP,SP
PUSH BX ;2
MOV BX,[BP+4]
nxt: MOV AL,[BX]
CMP AL,0
JE fini
CMP AL,' '
JNE fini
INC BX
JMP nxt
fini:MOV AX,BX
POP BX
MOV SP,BP
POP BP ;3
RET
fun ENDP
2. Reprsentez ltat de la pile (contenu et pointeurs) APRES lexcution des instructions repres par
des commentaires (chaque case fait deux octets, laissez vide les espaces libres).

SP2
BX BX BX
BP0 BP2 BP0 BP0
SP1 SP3
@ret @ret @ret @ret

@tab @tab @tab @tab


SP0 BP0, BP1 BP3 SP4 BP4

3. Dites ce que fait la fonction.


La fonction retourne ladresse du premier caractre de la chane
qui nest pas un espace

4. Sachant que la fonction 09h du DOS affiche une chane de caractres dont ladresse est passe par
DX, dites ce que fait le programme.
Cest sens afficher la chane sans les espaces,
(mais a plante car elle ne finit pas par un $)

You might also like