Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Assembleur : freescale mc9s12dp512
Bonjour,
J'essaye de faire un programme capable de calculer la somme de nombres en assembleur. J'ai donc commencé avec un tableau de quatre valeurs simples (1, 2, 3, 4)
j'obtient donc:
Maintenant je voudrais faire la même chose mais avec 12,34,300,500 mais je ne suis pas sur de ce programme, j'obtient:
Je ne suis pas sur pour:
"ADDD 0,X
INX"
car je ne suis pas certain de la signification de "ADDD 0,X" et je ne sais pas si "INX" va me permettre de prendre la 2è valeur de mon tableau ou s'il rajoute seulement la valeur "1" à X (puisque dans le programme précédent dans les deux cas ça fonctionnerait).
Merci d'avance.
J'essaye de faire un programme capable de calculer la somme de nombres en assembleur. J'ai donc commencé avec un tableau de quatre valeurs simples (1, 2, 3, 4)
j'obtient donc:
Code : Tout sélectionner
ORG $1000
LDAA #0
LDAB #4
LDX #table
DEB ADDA 0,X
INX
DBNE B,DEB
STAA $2000
FIN BRA FIN
table db 1,2,3,4
Maintenant je voudrais faire la même chose mais avec 12,34,300,500 mais je ne suis pas sur de ce programme, j'obtient:
Code : Tout sélectionner
ORG $1000
LDD #0
LDY #4
LDX #table
DEB ADDD 0,X
INX
INX
DBNE Y,DEB
STD $2000
FIN BRA FIN
table dw 12,34,300,500
Je ne suis pas sur pour:
"ADDD 0,X
INX"
car je ne suis pas certain de la signification de "ADDD 0,X" et je ne sais pas si "INX" va me permettre de prendre la 2è valeur de mon tableau ou s'il rajoute seulement la valeur "1" à X (puisque dans le programme précédent dans les deux cas ça fonctionnerait).
Merci d'avance.
Assembleur : freescale mc9s12dp512
Assembleur : freescale mc9s12dp512
- Claudius
Passionné- Messages : 260
- Âge : 69
- Enregistré en : septembre 2015
- Localisation : ELANCOURT (78 - YVELINES)
- Contact :
Bonjour,
Après quelques recherches, il faut bien incrémenter 2 fois le registre X pour parcourir la table qui contient les valeurs sous 16 bits...
Cf. Assembleur: freescale mc9s12dp512 pour l'argumentation et les justifications ;-)
Après quelques recherches, il faut bien incrémenter 2 fois le registre X pour parcourir la table qui contient les valeurs sous 16 bits...
Cf. Assembleur: freescale mc9s12dp512 pour l'argumentation et les justifications ;-)
Enregistreur de traces GPS & Boussole GPS parlante (PIC & Arduino)
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 128 invités