ASM 68HC11 ! - Programmation
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
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
Marsh Posté le 15-05-2001 à 18:54:22
Ahhhh d'accord
ben joce si j'avais été en cours, mon prof ki sait tout y torai aider mais la, ben fait fumer ton cervo
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
Marsh Posté le 15-05-2001 à 19:05:40
ah merci
c'est quoi fondamentalement la différence entre un jsr et bsr ?
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
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
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 |
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.
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 ?
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 =)
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...).
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)
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 :