T'es sûr ? Parce que juste après il est écrit : "Cet opérateur teste l'état actuel du flag zéro et fait un saut relatif (Jumps Relative) à 30001 si la dernière instruction arithmétique a un résultat non-zéro."
Inscription : 20 Août 2007, 18:21 Message(s) : 5003
ok, j'ai pas lu la suite, a vu d'oeil je pensais que c'était une bête boucle, mais la ca reinit les variables d'entrée de la routine 47962 avant de la re-exécuter.
Inscription : 15 Août 2008, 13:00 Message(s) : 968 Localisation : Troyes, France
Ah bon ? si tu sautes en 30001 tu vas retomber sur un ld A,(BC) (le "10" de ld C,10 te donne cette instruction), ça me semble peu cohérent surtout si il est suivi d'un ld A,65 à moins de voir le reste du code (bien sur c'est pas impossible mais c'est plutot un trick comme les conditionnal RST ou les instructions casées dans les opérandes d'un jr/jp)
jr nz,30004 me semble tout de même plus logique à défaut d'autres éléments puisque tu vas retomber bien proprement sur ton call.
_________________ "NOP" tel est le programme parfait ! court, rapide, lisible et sans bugs (connus)
Bon ok j'ai rien dit pour ce 30004, c'est correct, je n'avais pas tout lu
Citer :
Observons le programme, la seule ligne qui n'a pas été encore rencontrée est JR NZ. Cet opérateur teste l'état actuel du flag zéro et fait un saut relatif (Jumps Relative) à 30001 si la dernière instruction arithmétique a un résultat non-zéro. Ainsi le programme met le contenu de l'accumulateur sur l'écran, DECremente le registre C et vérifie si le flag zéro a été mis par l'instruction de DECrémentation. S'il ne l'a pas été, autrement dit si c'est Non Zéro, il fait alors un saut relatif a 30004, sinon il va à la ligne suivante du programme où il RETourne au programme principal (ici le Basic).
Sinon pour les chiffres en décimal, l'auteur dit avoir mis ça pour ne pas perturber le lecteur avec l'hexadécimal au début. Un peu étrange en effet parce que tous les bouquins commencent justement par ça.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 7 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum