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

publicité
Deug Mias
CLM
D. Etiemble
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
CP
R0
R1
R2
R3
R4
R5
R6
R7
Table 1
Contenu
(hexadécimal)
4000
0
50
256
8000
FFFF
3000
128
7FFF
Adresse
(hexadécimal)
Contenu (hexadécimal)
0000
0001
3000
3001
3002
3003
4000
4321
5555
5000
8456
4000
0123
Instruction à exécuter
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
1
2004
Deug Mias
CLM
D. Etiemble
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
2
2004
Téléchargement