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