TD n° 11 : Programmation assembleur 1 Exécution d`instructions 2

Deug Mias D. Etiemble
CLM
1 2004
TD n° 11 : Programmation assembleur
On utilise le processeur S4-2004, défini en annexe.
1 Exécution d’instructions
On suppose que la configuration de départ est donnée par la table 1, où le contenu des registres,
les adresses et contenus des cases mémoires sont exprimés en hexadécimal.
Registre Contenu
(hexadécimal)
Adresse
(hexadécimal)
Contenu (hexadécimal)
CP 4000
R0 0 0000 4321
R1 50 0001 5555
R2 256 3000 5000
R3 8000 3001 8456
R4 FFFF 3002 4000
R5 3000 3003 0123
R6 128 4000 Instruction à exécuter
R7 7FFF
Table 1
Soit les instructions assembleur suivantes
a) ADD R3, R1, R2
b) ADD R0,R1,R3
c) AND R3, R4, R2
d) LD R6, (R5+2)
e) ST (R5+0), R7
f) OR R7, R2, R6
g) BLT R3,+48
h) BGE R4,+100
i) BEQ R0, + 15
Donner le contenu en hexadécimal des registres et des cases mémoire modifiés après exécution
des instructions assembleur notées a) à i). Les registres modifiés peuvent être les registres
généraux et le compteur de programme CP.
NB - On repart à chaque fois de la configuration de la table 1 !!!
Donner le codage en hexadécimal des instructions suivantes
a) ADD R3, R1, R2
b) LD R6, (R5+2)
c) ST (R5 -2), R6
d) LIM R7, 9
2 Programmes assembleur
Deug Mias D. Etiemble
CLM
2 2004
a) Que fait le programme ci-dessous ? Que contiennent les registres R1 et R3 à la fin du
programme ?
ADD R3, R0,R0 ;
SUB R1,R1,R2 ;
BLT R1,+2 ;
ADDI R3,R3,1 ;
BEQ R0, -4 ;
ADD R1,R1,R2 ;
b) Que fait le programme ci-dessous ? Que contient le registre R3 à la fin du programme ?
ADDI R2,R1,9
LD R3, (R1+0)
ADDI R1,R1,1
SUB R5, R1, R2
BGT R5,+6
LD R4, (R1+0)
SUB R5, R4, R3
BLE R5, -6
ADD R3, R4, R0
BEQ R0, -8
FIN :
3 Programmation assembleur
Ecrire les programmes assembleur correspondant aux programmes Pascal suivants
On supposera que les variables a, b , c sont initialement dans les registres R1, R2 et R3.
a) if a+b > c
then
begin
a := a+b ;
c:= c+1;
end
else
begin
a := a-b ;
c:= c-1 ;
end
b) c:=0 ;
for a:= 1 to 10
do c:= c+a ;
c) while a < 30 do
begin
a:= a+b ;
c:= c+1
end
1 / 2 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 !