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

C Discussion :

Assembleur en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut Assembleur en C
    salut,

    j'essaie d'inclure du code assembleur (language que je ne maîtrise pas) dans mon code C comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
     
    void setmode_video (unsigned mode) {
    	__asm {
    		MOV AX, mode
    		INT 0x10
    	}
    }
     
    int main () {
    	setmode_video(0x13);
    	return 0;
    }
    Mais lorsque je veux compiler, le message d'erreur, operand size conflict, apparait.
    Je ne vois pas ce qui peux provoquer ce refus d'obtenpérer, encore un programme mal dressé
    De plus avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
     
    void setmode_video () {
    	__asm {
    		MOV AX, 0x13
    		INT 0x10
    	}
    }
     
    int main () {
    	setmode_video();
    	return 0;
    }
    Ce message de fou survient: L'instruction à "0x0040103c" emploie l'adresse "0xffffffff". La mémoire ne peut-être read.
    J'espère que quelqu'un pourra me sortir de cet enfer.
    Merci d'avance.

    Olivier.

  2. #2
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Pour l'erreur de compilation, je pense qu'il faut remplacer unsigned mode par unsigned char mode.

    Concernant l'erreur d'execution, quel OS utilises-tu ?

  3. #3
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Je viens de tester la solution du "unsigned char mod" mais l'erreur persiste... un programme coriace en tout cas merci quand même.
    Sinon je travaille sous windows XP.
    Merci de ton aide.

    Olivier.

  4. #4
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Sous XP (comme sous la plupart des OS recents), tu ne peux pas utiliser directement les interruptions.

  5. #5
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Ha bon ???
    Et bien merci pour cette info, je vais allez du coté de l'assembleur pour voir comment faire.
    Merci.

    Olivier

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par défaut
    Citation Envoyé par gl
    Sous XP (comme sous la plupart des OS recents), tu ne peux pas utiliser directement les interruptions.
    Et encore heureux que tous les programmes ne puissent pas changer le mode video comme cela !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tutoriels, F.A.Q : la rubrique Assembleur de Developpez.com
    Par Alcatîz dans le forum Assembleur
    Réponses: 3
    Dernier message: 07/06/2007, 19h14
  2. ecrire son OS (assembleur ??)
    Par Anonymous dans le forum Programmation d'OS
    Réponses: 9
    Dernier message: 25/11/2002, 19h25
  3. Assembleur sous Windows et sous Linux
    Par Bibouda dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 28/10/2002, 07h55
  4. Random en Assembleur
    Par funx dans le forum Assembleur
    Réponses: 9
    Dernier message: 02/09/2002, 17h05
  5. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 10h59

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