IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

Comment permettre que mon message affiché reste visible ?


Sujet :

x86 32-bits / 64-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut Comment permettre que mon message affiché reste visible ?
    Bonjour,

    Voilà, j'ai décidé de me mettre à l'assembleur avec (ou du moins faire des programmes de bases) et j'ai fais un petit un petit mon programme .com compilé et qui devrait s'executer avec AsmEditor, cependant lorsque j'execute le programme sous Windows, une fênetre noire s'ouvre et je n'ai pas le temps de voir mon petit message "Bonjour !", y'aurait-il un moyen qui permettrait de faire durer mon petit programme .com en restant sous Windows et non en l'executant avec le DOS?

    Voici mon petit programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
     
    .386
     
    code segment use16
     
    org 100h
     
    début :
     
    mov ah, 09h
    move dx, offset message
    int 21h
     
    ret
     
    message db "Bonjour !", '$'
     
    code ends
     
    end debut
    Merci

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    8 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 051
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Tu peux attendre la frappe d'une touche avant la fin du programme en ajoutant :
    Et pour qu'un programme se termine proprement, il faut appeler la fonction 4Ch de l'interruption 21h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mov ax,4C00h   ; 00h = code d'erreur renvoyé au système
    int 21h
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut
    J'ai un nouveau problème maintenant, j'ai inséré ce que tu m'as dis mais maintenant Windows dit que le processeur NTVDM a rencontré une instruction non autorisée...

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut
    Là, ça marche en supprimmant ; 00h = code d'erreur renvoyé au système car j'imagine que ce n'était pas une commande assembleur vu que c'était en italique mais toujours le même problème : une petit fenêtre noire apparaît et 100 ms plus tard disparait, pourtant j'ai bien insérer ce que tu m'as dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    .386
     
    code segment use16
     
    org 100h
     
    début :
     
    mov ah, 09h
    move dx, offset message
    int 21h
     
    ret
     
    message db "Bonjour !", '$'
     
    mov ah,07h
    int 21h
     
    code ends
     
    end debut
     
    mov ax,4C00h
    int 21h
    Les lignes de codage que tu m'as dis de mettre sont bien placées au moins?
    Car j'en suis pas sûr...

    Ah, et puis quand j'essaie de compiler mon programme aussi maintenant il me met un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    >> Exécution de C:\Program Files\Astase\AsmEditor\Fasm\Fasm.exe "C:\Documents and Settings\H\Bureau\Programme.com" "C:\Documents and Settings\H\Bureau\Programme.com"
    flat assembler  version 1.41
    C:\Documents and Settings\H\Bureau\Programme.com [3]:
    code segment use16
    error: reserved word used as symbol.
     
    >> Code de sortie de Fasm.exe : 1
    =
    >> Exécution de C:\Program Files\Astase\AsmEditor\Fasm\Fasm.exe "C:\Documents and Settings\H\Bureau\Programme.com" "C:\Documents and Settings\H\Bureau\Programme.com"
    flat assembler  version 1.41
    C:\Documents and Settings\H\Bureau\Programme.com [3]:
    code segment use16
    error: reserved word used as symbol.
     
    >> Code de sortie de Fasm.exe : 1
    Merci aussi.

  5. #5
    Membre éprouvé
    Avatar de Stormy_Ordos
    Profil pro
    Expert sécurité informatique
    Inscrit en
    Mars 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 91
    Par défaut
    Si tu es en mode réel (16 bits), tu peux appeler l'interruption 16h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	xor ax, ax
    	int 16h
    Tant qu'une touche du clavier n'est pas pressée, le programme reste en attente et ta fenêtre ne disparaîtra pas.
    Equivalent à un "repeat until keypressed" en pascal ou un "while (!kbhit())" en C.

    Petit détail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mov ax,4C00h
    int 21h
    doit être placé AVANT le "code ends" et "end debut"

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 41
    Par défaut
    Merci la fênetre noire s'ouvre et reste tant que je ne clique pas sur le croix, je vois le nom de mon programme mais maintenant le message ne s'affiche pas!
    Pourtant, je n'ai fais pas une erreur dans le codage, dites-moi?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    .386
     
    code segment use16
     
    org 100h
     
    début :
     
    mov ah, 09h
    move dx, offset message
    int 21h
     
    ret
     
    message db "Bonjour !", '$'
     
     
    mov ah,07h
    int 21h
     
    code ends
     
    end debut
    En image le soi disant "bug" : http://img259.imageshack.us/img259/8...embleurki6.jpg

    L'autre fois le curseur s'amusait à sauter des lignes mais rien, pas de message qui s'affiche, ah et si je pouvais également intégrer mon programme au démarrage de l'ordinateur, je vous en serai reconnaissant.

    Merci

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/05/2009, 09h11
  2. Comment éviter que mon annimation rame
    Par arnaudperfect dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 08/02/2009, 21h54
  3. Réponses: 1
    Dernier message: 16/01/2006, 10h15
  4. [XML]Comment tester que mon fichier XML est comme ceci?
    Par Devil666 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 02/06/2005, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo