Elements correction TD3 2005

Telechargé par demnatidata
Eléments de correction du TD3
INGE3/Prépa Master 2005
http://francomme.fr.fm 1 / 3
TD N°3 – Assembleur Avancé
Exercice n°1 : Stocker la valeur $E7 (sur un octet) dans la mémoire à partir de l’adresse
$2500 ; longueur de la table 32 octets.
ORG $0
DC.L $8000 * Stack pointer value after a reset
DC.L Start * Program counter value after a reset
ORG $2500
DS.L 32
ORG $1000
Start LEA $2500,A0
MOVE.L #32,D0
Boucle MOVE.B #$E7,(A0)+
SUB #1,D0
BNE Boucle
Fini BRA Fini
Exercice n°2 : Recherche de l’octet $FA dans la table commençant à l’adresse $F0000 de 32
octets.
9 Si l’octet est trouvé, on enregistre $FF à l’adresse $2500 et son adresse en $2510
9 Sinon on enregistre 0 en $2500.
ORG $0
DC.L $8000 * Stack pointer value after a reset
DC.L Start * Program counter value after a reset
ORG $2500
DS.B 1
ORG $2510
DS.L 1
ORG $0F0000 * Adresse de la table
DC.B $5a,$b2,$3f,$e4,$5a,$b2,$3f,$e4
DC.B $2b,$c2,$7c,$d4,$5a,$b2,$3f,$e4
DC.B $fa,$bb,$8a,$e1,$5a,$b2,$3f,$e4
DC.B $2b,$c2,$7c,$d4,$5a,$b2,$3f,$e4
ORG $1000
Start CLR.B $2500
LEA $F0000,A0
MOVE.L #$1F,D0
Encore MOVE.B (A0)+,D1
CMP.B #$FA,D1
DBEQ D0,Encore
BNE fin
MOVE.B #$ff,$2500
SUB.L #1,A0
MOVE.L A0,$2510
Fin BRA Fin
Eléments de correction du TD3
INGE3/Prépa Master 2005
http://francomme.fr.fm 2 / 3
Exercice n°3 : Comparaison de deux tables de données débutant en mémoire aux adresses
$2500 et $2510.
Quand deux octets différents sont trouvés, on range leur adresse respective en mémoire aux
adresses $2520 et $2530.
ORG $0
DC.L $8000 * Stack pointer value after a reset
DC.L Start * Program counter value after a reset
ORG $2500
DC.B $aa,$bb,$cc,$25,$5b,$7f,$45,$9f,$6d,$40,$3b
ORG $2510
DC.B $aa,$bb,$cc,$25,$5b,$7f,$45,$9f,$6d,$41,$3b
ORG $2520
DS.L 1
ORG $2530
DS.L 1
ORG $1000
Start LEA $2500,A0
LEA $2510,A1
Suite CMPM.B (A0)+,(A1)+
BEQ Suite
SUB.L #1,A0
SUB.L #1,A1
MOVE.L A0,$2520
MOVE.L A1,$2530
Fin BRA Fin
Eléments de correction du TD3
INGE3/Prépa Master 2005
http://francomme.fr.fm 3 / 3
Exercice n°4 : Effectuer la somme de 10 octets stockés en mémoire à partir de l’adresse
$2400 et stocker le résultat sur 16 bits en $2410
ORG $0
DC.L $8000 * Stack pointer value after a reset
DC.L Start * Program counter value after a reset
ORG $2400
DC.B 01,02,03,04,05
DC.B 06,128,64,64,1
ORG $2410
DS.W 1
ORG $1000
Start CLR.L D0
CLR.L D1
MOVE.L #9,D2
LEA $2400,A0
Encore MOVE.B (A0)+,D1
ADD.W D1,D0
DBRA D2,Encore
MOVE.W D0,$2410
Fin BRA Fin
N’oubliez pas de créer des labels dans toux ces
programmes afin de rendre la lecture plus explicite.
1 / 3 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 !