Logicielsmoto.com

Nous sommes le 19 Avr 2024, 21:14

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 281 messages ]  Aller à la page Précédente  1 ... 12, 13, 14, 15, 16, 17, 18, 19  Suivante
Auteur Message
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 06:13 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
adnz a écrit:
1 - en ghost_DG_UP (ici $97CA) j'ai stocké l'adresse $97D4 (qui correspond à blinky_DG_UP)
2 - en $97D4(blinky_DG_UP) j'ai stocké la valeur $7777(variable selon le calcul IA)


Moi, j'imagine la chose ainsi

LDX ,$97CA <-- X=$97D4
LDD ,X <-- D=$7777

CMPD,ghost_DG_UP

Mais dans ce code ghost_DG_UP sera toujours <> de D. A moins qu'il manque une partie avant le CMPD


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 11:49 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
- c'est pas grave que ghost_DG_UP <> de D à cette endroit du code.
Car c'est les derniers test qui BEQ vers le choix de la direction avant de retourner pour la prochaine boucle.

ok je vais essayer ça, merci.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 12:50 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1804
Localisation: Brest
Punaise je pige rien. J'arrive pas à comprendre ce qui est une donnée et ce qui est un pointeur.
Code:
LDX ,$97CA

est un truc qui n'existe pas. On veut faire "LDX #$97CA" ou "LDX <$97CA" ou autre chose encore ?

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 14:28 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
oui LDX , fait une erreur.

1 - sinon la seule donnée dans l'histoire c'est $7777 (le calcul sorti de l'IA est sur 16bits donc les réservations aussi ghost_DG_UP : $97CA et $97CB qui va contenir le poids fort et faible de l'adresse à pointé blinky_DG_UP, puis l'adresse blinky_DG_UP contiendra la valeur $7777)

2 - ghost_DG_UP ($97CA) et blinky_DG_UP ($97D4) sont des adresses mémoires réservées avec RMB 2

ghost_DG_UP RMB 2 ;$97CA et $97CB
...
blinky_DG_UP RMB 2 ;$97D4 et $97D5

3 - ghost_DG_UP est utilisé dans l'algo de l'IA (je stock dedans le pointeur que je fais varier pour stocker 4 valeurs différentes des 4 fantômes qui sont ici > blinky_DG_UP, pinky_DG_UP, inky_DG_UP, clyde_DG_UP)

4 - la problématique c'est que je veux lire le contenu de l'adresse ghost_DG_UP, qui contient une adresse mais qui varie, pour stocker la valeur calculé par l'IA (ici $7777 pour exemple)

- bon c'est pas plus clair mais , j'y suis presque et vos réponses m'on vachement aidé et m'on fait avancer, tous les calculs sont OK maintenant, il me reste plus qu'aller chercher les valeurs aux adresses pour les comparaisons (4 CMP) de la fin.


PS: j'veux bien balancer un bout de code, juste le calcule de ghost_DG_UP pour 1 seul fantôme mais j'ai peur que sans contexte ça soit le bordel à décrypter ...

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 15:39 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Samuel Devulder a écrit:
Punaise je pige rien. J'arrive pas à comprendre ce qui est une donnée et ce qui est un pointeur.
Code:
LDX ,$97CA

est un truc qui n'existe pas. On veut faire "LDX #$97CA" ou "LDX <$97CA" ou autre chose encore ?

LDX $97CA fonctionne aussi bien sur emulateur que sur la vrai machine.
Voici les codes LM
BE 97 CA EC 84 pour LDX $97CA et LDD ,X
adnz a écrit:
oui LDX , fait une erreur.

En fait, il faut enlever la virgule... Mis à part ça la routine fait exactement ce dont tu voulais.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 16:15 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1804
Localisation: Brest
Oui c'est la virgule qui me perturbait car quand on fait "LDD ,X" on va chercher la valeur donnée à l'adresse figurant dans X et donc ",$97CA" pourrait faire penser à la même chose: on récupère l'adresse figurant dans $97CA-$97CB (l'équivalent de la valeur stockée dans X), dont on récupère enfin la valeur. C'est une double indirection. En fait, c'est possible de faire ca sur 6809, mais ca se note "LDD [$E7CA]", pas "LDD ,$E7CA".

Là dessus c'est clair qu'il aurait été plus homogène que l'asm officiel motorola utilise soit:
  • "LDD ,X" et "LDD ,$E7CA", soit
  • "LDD [X]" et "LDD [$E7CA]".
Mais il ont fait un mix des deux. C'est pour ca que je demandais des précisions, car ",$E7CA" existe peut-être dans un ASM particulier (syntaxe MIT de gcc/asm par exemple), mais que dans tous les cas c'est ambigu. Mieux vaut coller à la syntaxe officielle, même si c'est pas 100% homogène.

_________________
Good morning, that's a nice Tnetennba


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 18:12 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
du coup

çà LDD [$E7CA] c'est pareil que ça LDD $E7CA ??

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 18:22 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Oui, c'est ce qu'il explique, mais selon l'asm utilisé ;) Et puis $E7CA, on tombe dans le PIA sys


Dernière édition par jasz le 05 Déc 2020, 18:25, édité 1 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 18:24 
Hors ligne

Inscription: 21 Aoû 2006, 09:06
Messages: 1804
Localisation: Brest
Non. LDD $E7CA c'est (évidemment)
Code:
LDD $E7CA
mais LDD [$E7CA] est en fait équivalent à
Code:
LDX $E7CA
LDD ,X
mais sans modifier X (ca utilise un registre interne temporaire). Le premier ne fait qu'un seul accès 16bits à la mémoire, le second en fait deux. Ca se voit très bien quand tu regardes les timings que la 2e forme fait "des trucs en plus". Les instructions ne sont donc pas équivalentes.

_________________
Good morning, that's a nice Tnetennba


Dernière édition par Samuel Devulder le 05 Déc 2020, 18:28, édité 3 fois.

Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 18:26 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ha.. ok je comprends mieux certain truc.
merci.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 18:32 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Ah! ben j'avais pas vraiment compris alors :oops:

En LM le code est EC 9F 97 CA. On gagne 1 cycle. En effet, je n'y avais pas pensé


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 05 Déc 2020, 22:26 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
Donc ça marche pour ça aussi ?

on a :
blinky_DG_UP RMB 2 (réserve les adresses $97A0 et $97A1)
ghost_DG_UP RMB 2 (réserve les adresses $97CA et $97CB)

si je mets
$7777 dans D (A=$77 et B=$77)
$12 dans $97A0 et $34 dans $97A1 (donc $1234 en blinky_DG_UP($97A0) )
$97 en $97CA et $CA en $97CB (donc $97A0 en ghost_DG_UP($97CA) )
donc :

CMPD [ghost_DG_UP]

équivaut à :
comparer la valeur D à la valeur stocké à l'adresse stocké en ghost_DG_UP ($97CA $97CA) ?
donc compare la valeur (D)$7777 à la valeur (blinky_DG_UP)$1234 ?

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 06 Déc 2020, 01:33 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ça avance je suis à 2 doigts de la fin de ce problème...

pour savoir, c'est normal que j'ai BCS au lieu de BLO dans le debugger ??

Image

_________________
Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 06 Déc 2020, 06:07 
Hors ligne

Inscription: 13 Juin 2005, 21:50
Messages: 290
Localisation: Planete Zorg (31)
Je ne connais BLO et pour cause, je ne l'aie jamais utilisé. Le code LM 25 xx s'applique aux deux branchements BCS/BLO qui est en soit la même chose apparemment. Cependant un CMP ne peut générer de retenue dans le cadre du BCS (branchement si C=1). Je m'interroge donc sur l'utilité du BLO à ce niveau. Je pense qu'un BLT serait plus judicieux.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Debut en asm sur TO8
MessagePosté: 06 Déc 2020, 11:35 
Hors ligne

Inscription: 06 Avr 2010, 01:59
Messages: 478
ha oui en effet j'avais pas fais gaffe, y'a BLT ...
j'essaye ! merci.

_________________
Image


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 281 messages ]  Aller à la page Précédente  1 ... 12, 13, 14, 15, 16, 17, 18, 19  Suivante

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 90 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Développé par phpBB® Forum Software © phpBB Group
Traduction par phpBB-fr.com