IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres architectures Assembleur Discussion :

[6502] Addition par une boucle


Sujet :

Autres architectures Assembleur

  1. #21
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    L'assembleur sans vraiment test ou projet réellement sérieux , peu resté flou.
    Ensuite quel est ton expérience en programmation ? si tu débute en programmation ça peut expliquer le probleme.

    Pourtant, il n’y a pas tant d’instructions qui pourraient être utilisées, mais leurs agencements et leurs adressages me reste opaque.
    C'est comme si tu me disais que en C il n'y a que des if , for ,while , int , fonction ect et que leurs agencements et leurs adressages te reste opaque , parce que la transcription entre les deux est relativement simple.

    L'assembleur ne manipule que des choses tres simple (et encore plus le 6502) , le reste c'est de la logique , de l'algo et de l'expérience.

  2. #22
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Je n'ai aucune expérience en programmation, juste entre aperçu quelques petites choses par-ci par là.

    le reste c'est de la logique , de l'algo et de l'expérience
    Donc pour l'expérience c'est raté et pour la logique ce n'est pas sûr, puisque j'avais dans l'idée (une autre) de rentrer dans un registre X ou Y l'adresse de la première valeur ou dernière et de l'utilisé avec ADC en adressage direct indexé tout en respectivement incrémentant ou décrémentant cette adresse et en comparant avec un CPX pour arrêter le tout une fois toutes les valeurs additionnées. Mais je ne sais pas si dans la logique du 6502 cela est possible représenté comme cela...

  3. #23
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par alex6502 Voir le message
    Je n'ai aucune expérience en programmation, juste entre aperçu quelques petites choses par-ci par là.
    ça explique pas mal de chose.

    Citation Envoyé par alex6502 Voir le message
    Donc pour l'expérience c'est raté et pour la logique ce n'est pas sûr, puisque j'avais dans l'idée (une autre) de rentrer dans un registre X ou Y l'adresse de la première valeur ou dernière et de l'utilisé avec ADC en adressage direct indexé tout en respectivement incrémentant ou décrémentant cette adresse et en comparant avec un CPX pour arrêter le tout une fois toutes les valeurs additionnées. Mais je ne sais pas si dans la logique du 6502 cela est possible représenté comme cela...
    Le probleme quand on débute c'est qu'on a une facheuse manie de compléxifié des choses qu'on peut faire simplement , bon et on rajoute ton inexpérience a la prog + l'assembleur et effectivement ça devient tres difficile.

    J'ai pas de solution miracle a ton probleme , sauf que il faut s'investir a fond dans ce domaine (si tu veux faire de l'assembleur par la suite) , sinon ben tu fait comme tout le monde tu rattrape ta mauvaise note sur une autre matiere (ce que faisait 90% mes camarades , presque aucun n'avait la moyenne dans cette matiere).

    Dis toi que l'assembleur c'est vraiment un domaine ou la plupart des programmeurs fuit en courant (d'ou aussi pourquoi je suis le seul qui t'aide dans le 6502 , parce que ben presque personne ne l'utilise de nos jours).
    Si Obsidian passe sur le forum peut etre qu'il t'éclairera mieux que moi , vu qu'il est meilleur pédagogue que moi.

  4. #24
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    J'ai pas de solution miracle a ton probleme , sauf que il faut s'investir a fond dans ce domaine
    Cela fait tout de même depuis hier que je suis dessus et je suis certain que la solution se résume à une poignée de code mais elle me reste inaccessible. Il y a de forte chance que je me tape la tête contre la table en voyant la solution demain seulement parce que je n'avais pas fait les bons liens au bon moment.

    (si tu veux faire de l'assembleur par la suite)
    Pour le coup, je suis plutôt partit pour en faire de l’exéma !

    sinon ben tu fait comme tout le monde tu rattrape ta mauvaise note sur une autre matiere (ce que faisait 90% mes camarades , presque aucun n'avait la moyenne dans cette matiere).
    Une question sur 5 de faite... Faudra seulement que je vérifie qu'il n'y a pas de note planché.

  5. #25
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Finalement, je suis passé à la question 3, même si j'aurais préféré me servir de la 2 pour faire une boucle et éviter de faire quelque chose aussi répétitif et qui doit te paraitre très peu convivial, mais qui est fonctionnel.
    L'objectif étant de sommer les nombres par le biais d'un adressage indirect indexé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    LDX #$03
    STX $50
    LDX #$02
    STX $51
    LDX #$06
    STX $52
    LDX #$11
    STX $53
    LDX #$0D
    STX $54
    LDX #$40
    STX $40
    LDX #$11
    LDA $50
    ADC $0040,X
    LDX #$12
    ADC $0040,X
    LDX #$13
    ADC $0040,X
    LDX #$14
    ADC $0040,X
    STA $55
    BRK
    Peut-être qu'étant donné que j'ai une solution, pourrais-tu m'expliquer quelques petits points...

  6. #26
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Et c'est quoi le probleme ? tu dois faire une boucle ? (mais j'ai deja donné la réponce pour ça).

  7. #27
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Et c'est quoi le probleme ? tu dois faire une boucle ? (mais j'ai deja donné la réponce pour ça).
    Oui avec cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    LDA $50
     
    LDX #4
    CLC
    -:
            ADC $50,X
            DEX
            CPX #0
            bne -
     
    STA $55
    Mais quand je l'applique, il ne me fait que l'addition entre la valeur chargée en A et celle en 0050 + 0004. En mode pas à pas sur soft6502 la valeur de X s’arrête à 3, donc une seule décrémentation.
    Je n'ai pas encore trouver mon erreur.

  8. #28
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    tout dépend ou saute bne , le signe '-' est un signe d'un label temporaire sur un assembleur ici il saute dans le label -: tout simplement, vu qu'avec ton logiciel tu dois ecrire les opcode directement , tu dois compter le nombre d'octet pour que bne saute au bon endroit.

    Si tu as mis cette valeur bne - --> D0 00 , ça veut dire que bne ne saute pas (il me semble que les instruction bxx saute de maniere relative).

  9. #29
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Kannagi Voir le message
    '-' est un signe d'un label temporaire sur un assembleur ici il saute dans le label -: tout simplement.
    Comme cela c'est tout de suite plus clair ce qui conduit au bon résultat. Merci.

  10. #30
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    ok , pour savoir c'est votre prof qui vous oblige a utilisé Soft6502 ?

  11. #31
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Non pas du tout, mais il nous avait montré quelques manipulations là dessus et sur le site e-tradition. J'aurais peut-être dû regarder du coté d'autres programmes, mais l'apprentissage d'un langage avec rendu combiné à celui d'une autre interface était un peu trop lourd pour un petit weekend.

  12. #32
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    oh ok , bah de mon point de vue tu t'es mis des batons dans les roues avec ce logiciel.
    Celui qui demande le moins de contrainte est celui la : http://www.6502asm.com/ et tu peux testé rapidment ton code
    Sinon j'utilise de maniere personnelle vasm et/ou wla-dx mais il en existe plein d'autre bien entendu

  13. #33
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Ok merci, je regarderai d'un peu plus prêt cela, mais maintenant que j'ai déjà la moitié des codes rentrés dans l'autre et que je m'y suis familiarisé, je vais finir mes deux dernières questions avec mon compagnon du weekend .

  14. #34
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Une petite dernière pour la route.
    Pour celle-ci, je dois réaliser mes additions en contrôlant l'overflow, si la capacité mémoire est dépassée, arrêt du programme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    LOOP
    CLC
    ADC $50,X
    DEX
    CPX #$00
    BNE LOOP
    BVS LABEL
    STA $55
    LABEL BRK
    D'après ce que j'avais compris, je voulais intégrer un BVS qui vérifie le bit V lié à l'overflow, si il est égale à 1, donc surcharge, redirection vers LABEL BRK pour l'arrêt, sinon il peut inscrire le résultat. Comme tu as dû deviner cela ne sert à rien même en additionnant FF à ED, opération qui devrait mettre V à 1, non?
    Encore une fois une subtilité m'échappe.

  15. #35
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    J'ai deja eu cette problématique pour vérifier ce qui dépassé l'écran, mais bcs est plus approprié a ton problème, si je me trompe pas le flag overflow est activé si le registre A et la valeur de adc sont positif et qu'il dépasse la valeur maximal (ici 127).
    Vu que $FF est égal a -1 , et donc si tu fait -1 + -2 ( $FF + $FE) , ça fait -3 et donc ça ne dépasse pas la valeur 127.

Discussions similaires

  1. Addition dans une boucle For de variables incrémentées
    Par heberco dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/01/2011, 18h48
  2. création des DDLs par une boucle for
    Par sophiesophie dans le forum C#
    Réponses: 27
    Dernier message: 29/05/2008, 11h29
  3. initialisation d'une listview par une boucle
    Par sam_c_java dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/10/2007, 11h10
  4. [Conception] Faire une somme de valeurs définies par une boucle
    Par fixbraun dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/09/2006, 23h46
  5. [Timer] timer bloqué par une boucle for?
    Par Jidefix dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 18/09/2006, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo