Aloyse57 Posté(e) le 12 juillet 2016 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...
steevensson88 Posté(e) le 12 juillet 2016 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é.
Aloyse57 Posté(e) le 12 juillet 2016 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)
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.