Aloyse57 Posté(e) le 12 juillet 2016 Partager Posté(e) le 12 juillet 2016 C'est un AND et pas un NAND ! Je suppose que le but de l'exercice est de faire activer votre routine au déclenchement d'une IRQ et surtout de vérifier que vous n'oubliez pas de rendre la main à la fin . Explications ici : sur les FIRQ du 6809 Edit : grillé par Digital-Jedi Je ne peux pas vous donner d'aide plus en détail, ça fait 25 ans que je n'ai plus codé en ASM (6502, x86). J'ai abandonné le Hack&Crack , donc plus de raison de continuer avec... Lien vers le commentaire Partager sur d’autres sites More sharing options...
steevensson88 Posté(e) le 12 juillet 2016 Partager Posté(e) le 12 juillet 2016 C'est ok j'ai bien la solution à l'exercice maintenant. L'écrire en asm 6809 n'est pas un problème maintenant que tout est clair grâce a Aloyse57. Thanks pour ton aide. Un autre exercice dont la compréhension m'est tout aussi Ambiguë que le précédent: Ecrire un programme en assembleur 80x86 qui calcule la somme de 16 bits sachant qu’ils sont précédés du nombre FFFF h. le résultat sera stocké à partir de l’adresse 2000 h. Consignes : - l’étendu des adresses de 0100 h et 01FA h - le résultat peut tenir sur 16 ou 32 bits. M'aider à comprendre le principe de résolution me sera d'une grande utilité. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Aloyse57 Posté(e) le 12 juillet 2016 Partager Posté(e) le 12 juillet 2016 C'est pour vous faire : 1/travailler sur des DD (=2Bytes=16 bits) et des DW(=Double Word=4bytes=32 bits). 2/transpirer sur la subtilité des bits de poids faibles (Low) et forts (High). Les 4 bits en partant de la gauche sont les H, et les 4 finaux sont les L. 3/Si je comprends le sujet, les nombres à additionner sont aux adresses impaires seulement. 0100:FF FF 0102:00 01 (exemple) 0104:FF FF 0106:0A 00 (exemple) 0108:FF FF ... 01FA : Vous avez donc FA(=250 décimal)/2=125 nombres à additionner, soit dans le pire des cas 125x65536(FFFF)=8192000(7D0000, soit 3 octets (32bits) à partir de l'adresse 2000) L'exercice est sympa, car il se limite à additionner sur 16 bits, qui est la taille des registres x86, mais le vice c'est que vous ne pouvez pas utiliser les registres brutalement car FFFF+FFFF=20000, donc il faut traiter la retenue (Carry, voir instructions JC/JNC) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.