abdellahchakir
Messages postés10Date d'inscriptionmercredi 10 septembre 2008StatutMembreDernière intervention21 avril 2011 28 sept. 2009 à 00:04
Bonsoir
une boucle est un outil informatique qui permet d'executer des instructions
ou un sous programme pas mal de fois (defins par le programmeur)
dont la syntaxe est :
label ; label:de ton choix
...
...
...
goto label ; goto:mot cléf primordial utilisé pour refaire la boucle
la boucle s'utilise dans pas mal d'applications,mais je vais entamer
l'une des applications les plus utilisées c'est le temporisateur
programme d'un temporisateur de niveau1:
movlw 0XFF ;charger w par la valeur hexa FF =11111111(binaire)
boucle ;label de boucle
movwf compteur ;chager le contenu de w dans le registre compteur
;créé par le programmeur
decfsz compteur,w ; decrementer le contenu du registre compteur
; mettre le resultat dans w et sauter si zero
goto boucle ; compteur#0 --> refaire la boucle
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 28 sept. 2009 à 12:17
Bonjour;
Le terme de boucle indique que l'on revient au départ, le système est bouclé, comme pour un amplificateur avec sa contre-réaction, ou un oscillateur, qui n'oecille qu'à cause de sa boucle.
Et il y a plusieurs sortes de boucles, surtout 3:
1) boucle de répétition, avec le nombre de tours défini à l'avance.
2) boucle faire "tant que", avec un nbre de tours indéfini, avec une condition à l'entrée. Donc on n'y rentre pas forcément.
3) boucle faire "jusqu'à", style la précédente mais condition à la sortie. Donc on y fait un passage mais on ne revient pas forcément en haut pour faire un deuxième.
Ensuite il y a des combinaisons de boucles, par exemple les boucles chevauchantes, une grande boucle peut englober une ou des petites. Ces boucles chevauchantes se font en Pascal et C, et en assembleur. Ces boucles sont courantes et connues de tout le monde
Il y a aussi les boucles imbriquées, interdites en Pascal, en C, mais possibles en assembleur, elles sont totalement différentes des précédentes, et procèdent d'un mécanisme identique à une chaîne à maillons croisés, donc pas la chaîne de vélo, mais les chaînes de levage, les chaînes à vaches, ou de marine. On passe d'une boucle à l'autre avant que la première soit forcément satisfaite mais quand l'entrée de la 2e l'est, et réciproquement, et la difficulté est d'en sortir, et il faut croire que les rédacteurs de langages de haut niveau ont renoncé à modéliser ce genre de boucles en les déclarant "impossibles.
Mais l'assembleur est un jeu où tout est permis aux artistes de la spécialité comme avoir une case mémoire qui sert à plusieurs variables, chacune à son tour, ou des variables qui changent de type, comme il n'y a pas de type en assembleur, que tout est bit ou octet, vous pouvez multiplier des lettres, ou faire tout ce qui est possible aux instructions, sans contrôle. C'est le règne de la liberté. C'est beaucoup plus puissant que tous les autres langages, qui eux ont été écrits en assembleur.
pont
cs_ghuysmans99
Messages postés3983Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 25 juil. 2009 à 23:52
Une boucle sert à exécuter un certain nombre de fois une ou plusieurs actions. Dans les exemples, on considère que la fonction prints (en stdcall) prend en paramètre un pointeur sur une chaine de caractères et l'affiche.
Premier exemple, via l'opérateur LOOP
mov ecx,2
@boucle:
push offset msg
call prints
loop @boucle
;Ce programme affichera 2 fois le même message
On peut aussi gérer la boucle nous-mêmes, en comparant le compteur (ou autre chose) à une certaine valeur et en fonction du résultat, sauter au début de la boucle ou pas.
Deuxième exemple :
mov ecx,2
@boucle:
push offset msg
call prints
dec ecx
jnz @boucle
;Ce programme fait la même chose que le premier exemple
pont
Messages postés198Date d'inscriptionsamedi 2 mai 2009StatutMembreDernière intervention16 novembre 20101 29 sept. 2009 à 18:42
Bonjour Vita01,
Pour compléter ce qui a été dit plus haut, je te donne un exemple bien connu sur les temporisations de tout système, qui sont de véritables blocages du système, qui devient alors totalement inopérant pendant leur déroulement, on avait la même chose avec les entrées de données et encore maintenant sur le PC, on voit un encadré, qui donne un ordre de cliquer ici, sinon tout reste bloqué, c'est de la très mauvaise programmation.
Au contraire, en assembleur, vous n'avez pas cela, il n'y a aucune procédure de tempo, donc on ne vous suggère rien. Et plutôt que de faire du comptage débile dans une tempo, ce que les idiots s'obstinent à faire en vrais moutons de Panurge, on voit cela partout dans les cours d'informatique, c'est aussi abrutissant que les tris de fichiers, preuve que j'ai subi ça à la fac, on construit une tempo efficace, qui fait quoi?
Je parle du contexte industriel, où on a une machine, qu'elle soit de fabrication ou d'emballage, n'importe, et comme toute machine elle est automatisée, avec un petit microcontrôleur dans lequel il y a le programme de marche normale, et d'autres programmes accessoires mais importants qui consistent dans la surveillance du fonctionnement de la machine pour prévoir les pannes, par ex elle déclenche un vérin pneumatique qui doit normalement mettre 0,5 seconde pour arriver en bout de course, et elle attendrait sans rien faire? Pas du tout elle peut faire des milliers dopérations en o,5s, voire des millions si elle est programmée en assembleur (les MIPS, c'est uniquement en assembleur!) va tester des températures, des vitesses de mobiles de la machine, elle fait une armée de contrôles, fait des statistiques, en déduit ce qui s'use, anormalement ou pas, elle fait tout ce qu'un ouvrier sérieux peut faire pour surveiller et entretenir la machine en plus de son travail normal, pour elle une tempo n'existe pas, alors une interruption de timer ou autre la rappelle à son travail normal. Qu'un timer, qui ne peut faire autre chose, fasse du comptage, oui, mais gaspiller le temps processeur en le bloquant à ne rien faire non, voilà la différence entre bonne et mauvaise programmation.
Donc je l'ai toujours dit aux jeunes: arrêtez de faire des boucles de tempo, il y a mieux à faire!
Si vous avez l'occasion, visitez la salle des machines d'un bateau diesel-électrique, le MARION-DUFRESNE, là vous verrez du véritable automatisme bien conçu. Et visitez aussi plein de sociétés où vous verrez du matériel tristement mal automatisé, qui tombe en panne sans prévenir, mais ne communique rien à l'opérateur. Il n'y a d'ailleurs aucune interface de dialogue, aucun moyen de contrôle.
Bonne programmation,
pont
vita01
Messages postés9Date d'inscriptionmardi 25 novembre 2008StatutMembreDernière intervention 7 juillet 2010 29 sept. 2009 à 19:27
merci pour tout tes conseils, en fait tu sais, je suis encore à mes debut en assembleur et j'aimerais vraiment macher assembleur , saurais-tu me conseiller un site ou suivre pas à pas pour debutant enfin de devenir un jour genie d'assembleur?
merci d'avance