Vous êtes sur la page 1sur 2

Langage Assembleur Motorola 6809

P1 Cration d'une table de donnes Sujet Une table de donnes consiste en une liste de donnes quelconques loges en mmoire des adresses successives. L'adresse de la premire donne est qualifie d'adresse de base de la table. Question 1 Proposer un programme permettant de ranger en mmoire dans l'ordre croissant lensemble des donnes 8 bits non signes partir de l'adresse de base $0100. Commentaires La plage des nombres non signs s'tend de $00 $FF. Il faudra donc charger la mmoire avec ces 256 valeurs. Programme ..:: Cration d'une table de donnes en bits non signs ::.. ORG $0000 * Dbut du programme LDX #$0100 * Dbut de table LDA #$00 * 1ere donnes $00 Boucle : STA, X+ * Chargement et incrmentation du pointeur CMPA #$FF * Dernire donne = $FF alors fin de programme BEQ Fin INCA * Incrmentation de la donne BRA Boucle Fin SWI Faire la mme chose pour l'ensemble des donnes 8 bits signes partir de l'adresse de base $0200. Commentaires : Il faudra en premier lieu charger la mmoire avec les nombres ngatifs en dcrmentant de $FF $80, puis charger les nombres positifs en incrmentant de $00 $7F. Programme ..:: Cration d'une table de donnes en bits signs ::.. ORG $0000 * Dbut du programme LDX #$0200 * Dbut 1ere donne ngative LDY #$0280 * Dbut 1ere donne positive LDA #$FF * 1ere donne ngative $FF Boucle : STA, X+ * Chargement et incrmentation du pointeur X CMPA #$80 * Si donne = $80 fin des donnes ngatives BEQ Positif DECA * Dcrmentation de la donne BRA Boucle Positif : LDA #$00 * 1ere donne positive Boucle1 : STA, Y+ * Chargement et incrmentation du pointeur Y CMPA #$7F * Si donne = $7F fin des donnes positives BEQ Fin

INCA * Incrmentation de la donne BRA Boucle FIN : END

P2 Dnombrement de donnes spcifiques dans une table :


Sujet :
On souhaite, dans ce problme, valuer le nombre de donnes d'une table qui rpondent une mme caractristique. Question 1 Proposer un programme permettant d'effectuer le comptage des donnes positives, ngatives et nulles dune table de nombres signs de 8 bits. Le programme devra permettre de stocker ces rsultats aux adresses $0050, $0051,$0052par exemple.

Commentaires :
Aprs avoir charg la valeur dans le registre A, qui automatiquement positionne les bits N et Z, on peut utiliser les instructions de branchements qui en dcoule. Programme ..:: Tri de donnes positives, ngatives ou nulle ::.. TABLE EQU $1000 * Dclaration du dbut de table FIN_TAB EQU $1009 * Dclaration du pointeur de fin de table ORG $0000 * Dbut du programme LDX #TABLE * Chargement du pointeur Boucle : CMPX #FIN_TAB+1 * Si le pointeur dpasse la fin de la table BEQFIN * alors FIN LDA, X+ * Chargement et incrmentation du pointeur BMI Ngatif * Si l'opration est ngative > Ngatif BEQ Nul * Si A = 0 > Nul LDB >$0050 * Sinon la donnes est positive INCB * Incrmente le compteur situ en $0050 STB >$0050 * On mmorise la valeur BRA Boucle Ngatif : LDB >$0051 * La donnes est ngative INCB * Incrmente le compteur situ en $0051 STB >$0051 * On mmorise la valeur BRA Boucle Nul : LDB >$0052 * La donnes est nulleINCB * Incrmente le compteur situ en $0052 STB >$0052 * On mmorise la valeur BRA Boucle FIN SWI ORG $1000 * Dbut de la TABLE FCB 1, 1, 0, 5, 8, 7, 0, 9, 2, 6

Vous aimerez peut-être aussi