CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[ASM] Problème avec une boucle

Chaos_Clad
Chaos_Clad
Niveau 10
13 janvier 2009 à 23:30:17

Bonsoir à tous =)

Je me suis mis à l'ASM hier et j'en suis à faire des boucles. Le cours propose un fichier COM, j'ai voulu en faire un EXE, tout fonctionne à la compilation, mais quand j'exécute le programme, il ne se passe tout simplement rien, et je n'arrive pas à voir pourquoi.

Voici le code :

http://rafb.net/p/1SKT1m92.html

Enjoy ;-)

dnob700
dnob700
Niveau 10
14 janvier 2009 à 00:03:31

si tu le compile en .com il se passe quelque chose quand tule lance ?

Que veux-tu dire par "il ne se passe rien" ? Est-ceque tu le lance depuis une console, pour pouvoir voir sa sortie ?

Chaos_Clad
Chaos_Clad
Niveau 10
14 janvier 2009 à 00:25:58

J'ai voulu le réécrire en COM et ç'a été l'occasion de voir que j'avais oublié le ret à la fin de la procédure ecrit_message, je l'ai rajouté et maintenant ça fonctionne.
Mais j'aimerai bien comprendre pourquoi, ret est une fonction qui rend la main à l'appelant non ? Mais à priori si j'écris quelque chose sur l'écran, peu importe que ce soit code ou ecrit_message qui ait la main, ou alors c'est que ce n'est pas ecrit_message qui écrit mais bien la fonction qui l'appelle.
Mais dans ce cas si j'ai plein de fonctions imbriquées ça devient vite difficile à gérer...

dnob700
dnob700
Niveau 10
14 janvier 2009 à 22:05:35

non, l'écriture est faites par l'appel "int 21h" dans ecrit_message. Que ce passe-t-il si en COM tu enlève le ret (i.e. si tu ne change qu'un seul paramètre à la fois et non pas deux), où si tu le remets en .exe ?

Chaos_Clad
Chaos_Clad
Niveau 10
15 janvier 2009 à 12:58:34

Ca ne marche pas, et si je rajoute le RET ça marche.

Voici le code du COM :
http://rafb.net/p/uTFF9x98.html

Et du EXE :
http://rafb.net/p/AvsaYb27.html

C'est vraiment le fait qu'il y ait ou non ce RET qui change le comportement du programme (dans les deux versions). Si je ne le mets pas, quand je lance le programme il n'affiche rien, il ne plante pas ou ne fait pas de boucle infinie, il n'affiche tout simplement rien.

Chaos_Clad
Chaos_Clad
Niveau 10
15 janvier 2009 à 12:59:25

Oups, erreur de c/c :

Voici le code du COM:
http://rafb.net/p/mfe5M128.html

Chaos_Clad
Chaos_Clad
Niveau 10
15 janvier 2009 à 13:00:58

Au cas où ça aiderait, je compile et lie avec TASM de la manière suivante :
tasm /m9 boucle
tlink (/tdc pour le COM) boucle

dnob700
dnob700
Niveau 10
15 janvier 2009 à 22:03:20

Dans le com, rajoute le retour à la ligne à la fin de ton message.

Je ne sais pas comment tu lance ton programme (depuis une console j'espère), mais certains système efface une ligne de sortie si elle n'est pas terminée par un retour à la ligne.

Ça ne devrait rien changer, mais déjà ça élimine une possibilité.

Chaos_Clad
Chaos_Clad
Niveau 10
16 janvier 2009 à 01:58:05

Oui je lance mon programme depuis la console (je suis sous XP). Pourquoi ? Qu'est ce que ça changerait sinon ?
J'ai rajouté le retour à la ligne, effectivement ça ne change rien, j'ai enlevé le ret, ça n'affiche rien, et quand je le remets à l'affiche correctement donc le problème doit se situer à ce niveau là mais je vois pas du tout pourquoi =/

Merci de ton aide au passage =)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment