begin process at 2012 05 25 05:38:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Processeurs

 > 

X86

 > 

Boucle en ASM


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Boucle en ASM

samedi 25 juillet 2009 à 19:40:13 | Boucle en ASM

vita01

Bonjour, je suis un jeune debutant en assembler et j'aimerais savoir à koi sert la BOUCLE dans un programme Assembler
merci de bien vouloir m'aider

samedi 25 juillet 2009 à 23:52:28 | Re : Boucle en ASM

ghuysmans99

Membre Club

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

Code :
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 :
Code :
mov ecx,2

@boucle:
push offset msg
call prints
dec ecx
jnz @boucle
;Ce programme fait la même chose que le premier exemple



---
VB.NET is good ... VB6 is better

lundi 28 septembre 2009 à 00:04:58 | Re : Boucle en ASM

abdellahchakir

Réponse acceptée !

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

lundi 28 septembre 2009 à 12:17:48 | Re : Boucle en ASM

pont

Réponse acceptée !



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

mardi 29 septembre 2009 à 09:48:56 | Re : Boucle en ASM

vita01

m erci milles fois de ta reponse
mardi 29 septembre 2009 à 18:42:41 | Re : Boucle en ASM

pont


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



mardi 29 septembre 2009 à 19:27:04 | Re : Boucle en ASM

vita01

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


Cette discussion est classée dans : boucle, asm, assembler


Répondre à ce message

Sujets en rapport avec ce message

Compileur ASM [ par fabiin ] SalutQuel compileur ASM me conseillez-vous ???Merci @+Fabs Besoin de conseils en livre sur l'asm! [ par BlackWizzard ] je voudrais m'acheter un livre sur l'asm sans trop de blabla et pas trop cher...qqun a qqchose a me conseiller? virgule flotante en asm [ par webfish ] Bonjour, Je fais de l'assembleur depuis pas longtemps, et j'aimerais savoir comment on fait des calculs avec des nombres à virgule flotante... asm [ par damien174 ] bonjour je viens de commencer a faire de l ASM sur PC, car je connais tres bien sur 68HC11.Avez vous des cours et un logiciel pour assembler et compil ASM pour 68hc11 [ par Sphaxs ] SphaxsSalut tout le monde,J'ai fait une plaque de test pour utiliser un 68hc11 mais je n'arrive pas à le programmer (pb de logiciel???), si quelqu'un passage de paramétres entre VCpp et ASM [ par orchis ] bjr a tous,j'ai ecris un programme en VCpp dont un module est en assembleur, mais je ne sais faire passer des paramétres entre les deux !! pourriez vo Routine asm dans gcc [ par Juke ] quelqu'un connait t'il un txt en francais qui explik comment incorporer de l'asm dans du c++ avec gcc ou dev-c++ ? Reboot de la machine en c/c++ ou asm [ par Juke ] quelqu'un sait t'il comment rebooter ou éteindre l'ordinateur en c/c++ ou en asm ?merci de votre aide.juke objets ASM [ par gblade ] est ce que qqun saurait comment exporter des membres statics d'une classe ecrite en ASM ? je sais faire avec les membres virtuels mais pas les statics Cherche développeurs asm pour OS [ par Shinji ] Salut, je cherche des gens intéressés par le développement d'un système d'exploitation sur x86 en asm (pour commencer).J'essaie seul pour le moment et


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales