P1 Cr é ati o n d 'u n e t ab le d e d o n n é es
Sujet U n e tabl ta bl e de don d onnn é es con siste si ste en u n e lil i ste ddee don do n n é es qu quel elco conn ques qu es llog ogé é es en en m é m oi r e à des adr esse essess succes succ essi sives. ves. L ' adr esse esse de la l a pr p r emi è r e don n é e est est qual qu alii f i é e d' adr esse esse de base de la table tabl e. Questi Question on 1 Pr opos oposeer un progr pr ogramme amme per per mettant de range ran gerr en mé moi r e dans l ' ordr or dree cr cr ois oi ssant l’ensemble des données 8 bits non signées à partir de l'adresse de base $0100.
Commentaires
La plage des nombres non signés s'étend de $00 à $FF. Il faudra donc charger la mémoire avec ces 256 valeurs. Programme ..:: Création d'une table de données en bits non signés ::..
ORG $0000 * D é but bu t du progr pr ogramm ammee L D X #$010 #$01000 * D é but bu t de tabl e L D A #$00 * 1ere 1er e donn don n é es $00 Bou cle : STA, X + * Char geme gement nt et i ncr é mentation du poi nteur CM PA #$F F * Derni Der ni è r e donn é e = $F F alor al orss f i n de progr amme BEQ F i n I N CA * I n cré cr é mentati ment ati on de la don donnn é e BRA B oucle Fi n SWI SWI Faire la même chose pour l'ensemble des données 8 bits signées à partir de
l'adresse de base $0200.
Commentai r es : Il faudra en premier lieu charger la mémoire avec les nombres négatifs en décrémentant de $FF à$80, puis charger les nombres positifs en incrémentant de $00 à$7F. Programme
..: : Cr é atii on d' u n e tabl at ta bl e de donn don n é es en bi t s si si gn gné é s :: : : .. ORG $0000 * D é butt du pr bu progr ogramm ammee L D X #$ #$02 0200 00 * D é bu t 1er e don do n n é e né né gatti ve ga L D Y #$0 #$0280 280 * D é butt 1er bu 1eree don n é e positi posi ti ve L D A #$F F * 1er 1eree donn don n é e né gatii ve $F F gat Boucle : STA , X+ * Char ge gement ment et in cr cré é mentation mentati on du poi nteur X CM PA #$ #$80 80 * Si do donn n é e = $8 $800 f i n des don do n n é es né gatt i ves ga BEQ Po Possitif D E CA * D é cr é m en entt at atii on de l a do donn n é e BRA B oucle Positii f : L D A #$00 Posit # $00 * 1ere donn é e positi ve Boucle1 : STA , Y+ * Char ge gement ment et incr in cré é mentati on du poin teur Y CM PA #$7F * Si don donnn é e = $7F f i n des don donnn é es posi posititi ves BEQ Fin
I N CA * I n cr cré é mentat men tatii on de la l a don do n n é e BRA B oucle FI N : END
P2 Dé n o m b re m en t d e d o n n é es s p é ci fi q u es d an s u n e tab le :
Sujeet : Suj
On souh aite, ai te, dan d anss ce probl pr obl è me, é valu val u er l e nomb no mbrr e de donn don n é es d'u d' u n e tabl e qui qu i r é ponden pon dentt à u n e mê m êm e car ca r acté act é r i sti que. qu e. Questi Question on 1 Propos Pr oposer er un progr pr ogramme amme permettant perm ettant d' effec eff ectu tuer er l e comptage des des donn donné é es pos posii tive ti vess,
négatives et nulles d’une table de nombres signés de 8 bits. Le programme devra permettre
de stocker ces ré sultat sul tatss aux adr esse essess $0050, $0051,$0052par $0051,$00 52par exemple. exempl e.
Commentai r es :
Apr ès avoir char gé l a valeur dans le registr e A, qui qu i aut automati omati que qu ement positi onn onnee l es bits bi ts N et Z, on peut uti u till i ser ser l es ins in str ucti ons de branch br ancheements qui en dé coul e. Programme ..: : T r i de donn don n é es positi posi ti ves, ves, né né gatii ves ou n u l l e :: .. gat T A B L E EQU E QU $1000 * D é clar cl ar ati on du dé butt de tabl e bu F I N_T AB E QU $1009 * Dé clar ati ation on du pointeur de f i n de table ORG $0000 * D é but du pr p r ogr amm ammee L DX #TAB L E * Charge Chargeme ment nt du pointe pointeur ur Boucle : CM PX #F I N_T AB +1 * Si le pointeur point eur dé passse la fi n de la table pas BEQFI BEQ FI N * alors FI N L DA , X+ * Char ge gement ment et incré in cré mentation du pointeur poi nteur BM I Né gatii f * Si l ' op gat opé é r at atii on est né né gatii ve −> Né gat Né gatti f ga BEQ Nul * Si A = 0 −> Nul L D B >$0050 > $0050 * Sin on l a donn é es es estt positi posit i ve I N CB * I ncr é mentee le compteur ment compt eur sit situu é en $0050 STB >$0050 * On mé mor i se l a valeur val eur BRA Boucle Né gat i f : L D B > $00 $0051 51 * L a don do n n é es est né né gatii ve gat I N CB * I ncr é mentee le compteur ment compt eur sit situu é en $0051 STB >$0051 * On mé mor i se l a valeur val eur BRA Boucle Nul : L D B >$0052 > $0052 * L a donné don né es es estt nul n ul l eI eIN N CB * I ncr é mentee le compteur sit ment situé uéen $0052 STB >$0052 * On mé mor i se l a valeur val eur BRA Boucle Bou cle FI N SWI SWI ORG $1000 * D é but de la TA BL E
FCB −1, −1, 0, 5, 8, −7, 0, −9, 2, 6