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 16-bits Assembleur Discussion :

Impossible d'exécuter un code une fois compilé


Sujet :

x86 16-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Par défaut Impossible d'exécuter un code une fois compilé
    Salut a tous,

    J'essaye d'exécuter ce code une fois compilé dans emu8086, mais ça ne fonctionne pas. Windows XP (32 bits) m'affiche une fenêtre MS-DOS noire, et rien ne se passe.

    org 100h

    MOV AX, 0B800h ; Appel Mémoire video
    MOV DS, AX

    boucle:
    mov ch, 11111111b ; couleur blanche
    MOV CL, ' '
    mov bx, di
    add di, 162 ; calcul des cordonnées
    mov [bx], cx ; affectation de la valeur de cx dans l'adresse de bx
    loop boucle ; boucle de répétition

    ret
    Sous emu8086, quand je lance « Emulate », ça fonctionne.

    Merci.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 452
    Par défaut
    Bonjour,

    Tu n'initialises pas la valeur de DI. Si ton registre est à zéro au départ, tu verras ton résultat, mais il peut se trouver n'importe où ailleurs.

  3. #3
    Membre Expert
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Par défaut
    Je ne sais pas si la console de XP est d'office en mode texte

    tu peux mettre ces 2 lignes au début du prog pour forcer le mode texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mov ax,02h
    int 10h
    a+ François

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Par défaut
    Citation Envoyé par Forthman Voir le message
    Je ne sais pas si la console de XP est d'office en mode texte

    tu peux mettre ces 2 lignes au début du prog pour forcer le mode texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mov ax,02h
    int 10h
    a+ François
    C'est incompatible avec le mode VGA (0B800H)

  5. #5
    Membre Expert
    Avatar de Forthman
    Homme Profil pro
    conception mécanique
    Inscrit en
    Janvier 2005
    Messages
    702
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 702
    Par défaut
    Pardon ?

    Pourquoi ça ?
    le mode 02h est un mode texte 80x25 en 16 couleurs
    tout ce qu'il y a de plus standard, et la valeur
    du segment est bien B800h

    chez moi ça marche en tout cas

    a+ François

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 452
    Par défaut
    J'ajouterais qu'en plus, B800h est bien antérieur à VGA. Je l'utilisais déjà en CGA 4 couleurs (qui peut croire aujourd'hui que ce fut un standard sur PC il y a encore une vingtaine d'années).

    En VGA, on commençait déjà à exploiter la RAM vidéo à partir de A000.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 17
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Bonjour,

    Tu n'initialises pas la valeur de DI. Si ton registre est à zéro au départ, tu verras ton résultat, mais il peut se trouver n'importe où ailleurs.
    J'ai mis MOV DI, 0 au début, mais ça fonctionne toujours pas

Discussions similaires

  1. une fois compilé, os.system ne fonctionne pas alors qu'en .py il marche
    Par clavier12AZQSWX dans le forum Général Python
    Réponses: 7
    Dernier message: 18/09/2010, 18h22
  2. Réponses: 0
    Dernier message: 26/10/2007, 15h22
  3. onexecute: exécuter du code une seule fois
    Par root76 dans le forum Struts 1
    Réponses: 8
    Dernier message: 26/04/2007, 14h48
  4. Comportement différent une fois compilé
    Par Le Furet dans le forum Eclipse Java
    Réponses: 9
    Dernier message: 19/01/2007, 19h12
  5. Exécuter un script, une fois par jour
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 19/10/2006, 16h55

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