ASM 68HC11 !

ASM 68HC11 ! - Programmation

Marsh Posté le 15-05-2001 à 18:43:12    

Y a des calés dans la salle, j'ai un problème avec mon code :(
 
http://www.presence-pc.com/joce/teprasca.asm.txt
 
Pour les erreurs :
 
http://www.presence-pc.com/joce/erasm.png
 
:cry:

Reply

Marsh Posté le 15-05-2001 à 18:43:12   

Reply

Marsh Posté le 15-05-2001 à 18:48:04    

mais jte le dit cai a cause de ta boucle pour la tempo, le bne fo pas le mettre la !! tai vraiment nul :D

Reply

Marsh Posté le 15-05-2001 à 18:49:22    

tsssss t'a rien comprit toi
c a cause du code bidule machin qui fait merdé la chose la bas dans le coin :D

Reply

Marsh Posté le 15-05-2001 à 18:54:22    

Ahhhh d'accord :lol:
 
ben joce si j'avais été en cours, mon prof ki sait tout y torai aider mais la, ben fait fumer ton cervo :)

Reply

Marsh Posté le 15-05-2001 à 19:02:53    

j'ai pas fait de 6800 depuis 78, mais voici les restes :
pour les bsr out of range :
Le branch et ses dérivés est codé sur un octet de déplacement :
+ 128 et -127 octets (ou l'inverse) et ta fonction Analyse_reverse est au moins à 140 octets de la ligne 71.
utilise un jump codé sur 2 octets plutôt qu'un branch dans ce cas
 
Le reste demain si j'ai des idées car là je m'en vais.
A+ Joce

Reply

Marsh Posté le 15-05-2001 à 19:05:40    

ah merci :)
c'est quoi fondamentalement la différence entre un jsr et bsr ?

Reply

Marsh Posté le 15-05-2001 à 19:18:02    

bon j'ai déplacé la secteur de code de calcul + commande servo, et j'ai plus de branch out of range :)
 
Reste plus que les autres erreurs :sarcastic:

Reply

Marsh Posté le 15-05-2001 à 19:29:43    

bon j'ai trouvé pour les autres erreurs, c'était juste qu'apparement les noms de label était trop long pour lui :mad:

Reply

Marsh Posté le 15-05-2001 à 20:42:51    

Joce a écrit a écrit :

bon j'ai trouvé pour les autres erreurs, c'était juste qu'apparement les noms de label était trop long pour lui :mad:




 
hehe, comme tout les vieux assembleurs les nom sont tronqués sur 8 caractères (idem pour les variables!).
 
bsr: le pc+2 est poussé dans la pile et de deplacement (codé sur un octet signé) est ajouté au pc courant. Codé sur 2 octets.
 
jsr: le pc +2/3 est mis dans la pile. Puis branchement a addr spécifiée selon le mode d'adressage (direct, etendu ou indexé). Codage 2 ou 3 octets. l'adresse est donc en absolu et non en relatif.

Reply

Marsh Posté le 15-05-2001 à 20:44:42    

donc ca veut dire que quand tu fous des jsr, il faut impérativement recompilé le code en fonction de 68HC11 sur lequel tu le mets ?

Reply

Marsh Posté le 15-05-2001 à 20:44:42   

Reply

Marsh Posté le 15-05-2001 à 20:46:02    

tient d'ailleurs pour le coup des noms c'est bizarre, avec le compilo AC11 j'avais pas de problème, mais dès que j'ai compilé avec le crosscompilo ACB11, il m'a à nouveau fait chier sur d'autre nom long, et m'a trouvé quelques nouvelles erreurs =)

Reply

Marsh Posté le 15-05-2001 à 21:40:46    

Oui si tu fait appel a des registres internes su HC11, mais non si ton code est loadé a la même adresse. Une facon pour contourner ca c'est d'utiliser l'adressage indexé, avec l'index en adressage fixe (eeprom par ex). C'est ce qui est le plus simple pour un module réutilisable.
 
Les 8 bits c'est nettement plus archaïque que les 32 bits. Et encore t'as pas taté du PIC, parceque le RISC a structure Harward c'est encore pire (code et memoire distincts, page de code de 512 octets etc...).

Reply

Marsh Posté le 15-05-2001 à 22:00:39    

ca correspond à ca le ORG #F800 alors, donc y aura pas de galère (vu que je fous ca en EEPROM)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed