Si comparer était possible!

Quelle est l'explication des fonctions Goto et Gosub du basic de Bill Gate ? et quand faut-il les utiliser ?

Dans un cas Goto effectue un saut, un branchement vers une autre instruction et Gosub aussi mais il prend soin de mémoriser l'adresse actuelle du compteur de programme, celui qui (des registre) pointe sur l'instruction en cours pour que quand sa fonction soit terminée il (votre processeur) sache ou revenir.

Et pourquoi ceci peut vous apparaître abscon, en effet parfois et même souvent vous aurez besoin d'effectuer plusieurs fois le même calcul alors la fonction Call de l'assembleur des µmicroprocesseur Intel permet de le faire aisément en passant quelques paramètres (ou pas) dans la pile (le stack segment).

Les instructions Jump elles aussi effectuent un branchement vers une autre adresse et s'utilise très fréquemment quand vous voulez comparer deux valeurs et faire une action plutôt qu'une autre selon ce résultat.

Un autre exemple simple, permet de comparer deux nombres! et comment : si vous soustrayer deux chiffres l'un avec l'autre et selon le résultat vous saurez lequel est le plus grand selon le signe obtenu alors le résultat indique un état inférieur ou supérieur.

Il est ainsi aisé de comparer deux valeurs entre-elles : et la fonction Jump If Zéro correspond à l'égalité quand le drapeau Z du registre et positionné.

Note de l'auteur Niklaus Emil Wirth le Concepteur du langage Pascal en 1956 a définit que son langage pouvait faire ceci sans utiliser ni Jump ni call. Précision : le compilateur les traduits pour vous.

Mais faut-il encore savoir comment fonctionne un microprocesseur : il dispose de registre qui sont énuméré par les lettres de l'aphabet,

Il sait aussi comment adresser son bus vers sa mémoire, en positionnant sur son bus d'adresse, quelle est la valeur qu'il demande ou reçoit sur son bus d'adresse et aussi s'il effectue une opération de lecture ou d'écriture avec le drapeau Read/Write.

Il existe principalement deux bus différents, un pour les adresses (vers quelle adresse sont enregistrées les données) un autre pour les données (quelle est la valeur qui va être stockée).

Et cette même mémoire va être transférée sur le bus de donnée pour renseigner un de ces registres internes (ceux avec lesquelles il calcule) comme le registre de l'accumulateur (symbole A).

© BeeLog 2012 écrit par Denis