begin process at 2012 05 25 12:13:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

c, c++ et asm

 > 

Probleme de compilation je pense


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

Probleme de compilation je pense

samedi 9 juillet 2005 à 13:25:35 | Probleme de compilation je pense

Merzhin79

ALors c'est assez compliqué alors je vais expliquer ca point par point : 1-j'ai un bootsect en assembleur qui reste en mode reel, qui charge un programme a l'adresse 100:0 et qui le lance. 2-Le programme charger reinitialisise ces segments de données ect.. puis j'apelle un procedure que j'ai ecrite en C qui se nomme "principal". 3-Cette procedure ecrite en C va appeler une fonction par exemple "void test(void)" qui ne fait rien. Quand je debug sous BOCHS, pas de probleme, on voit bien les deux CALL passer (principal + test). 4-Je modifie la fonction test pour prendre un argument (par exemple un int) et je relance le debug sous BOCHS. Le premier CALL a la premiere fonction en C (principal) marche, ensuite il me met n'importe quoi (j'ai pas chercher a savoir ce qu'il faisait exactement) puis il fait un rtn. Bref il a pas fait le CALL de ma deuxieme fonction "test". Et cela se produit seulement quand je rajoute un argument dans la focntion "test". Je pense avoir un probleme de compilation ou peut etre de lien (j'avoue etre perdue la). Voila la ligne pour la compilation : gcc -c kernel.c Je signale aussi que je reste en permanence en mode reel.
samedi 9 juillet 2005 à 14:35:43 | Re : Probleme de compilation je pense

ToutEnMasm

Salut,
Un bon debugger doit faire l'affaire,mais il faudrait quand même préciser si c'est du 16 ou du 32 bits.De l'assembleur ou du mitigé assembleur C,inline pas inline etc .....
                   ToutEnMasm


samedi 9 juillet 2005 à 18:58:59 | Re : Probleme de compilation je pense

Merzhin79

Alors c'est du 16 bits et les fonctions ne sont pas inliné.
dimanche 10 juillet 2005 à 19:37:09 | Re : Probleme de compilation je pense

ToutEnMasm

Salut,
C'est déja plus précis,je suspecte des conventions d'appels non respectés.Un appel a une fonction C ne s'écrit pas comme un appel a une fonction asm.Un appel long ne se code pas comme un appel court avec retn.

Pour savoir si le stack Frame (encadrement de la pile en bon franchouillard) est correct frapper ces mots dans MSDN et sa vous ménera directement aux conventions d'appels par proc.Chaque proc est construit suivant un modèle de gestion de la pile qui lui est propre et avec d'autres particularités.
Soit l'assembleur fait le travail et on est bien content de ne pas avoir a régler ce genre de détails,soit on essaye de construire soit même un stack frame avec les instructions leave et ret N , mais c'est du bricolage.
Masm résoud le problème avec l'instruction proc (construction du Stack frame) et proto (pour la convention d'appel).La convention d'appel peut être standard ou C.
Dans quels cas vous placer vous ?.
                                            ToutEnMasm

samedi 30 juillet 2005 à 17:45:22 | Re : Probleme de compilation je pense

Merzhin79

J'ai compris c'est que comme je l'indiquer je suis en mode reel (donc 16 bit) hors GCC est un compilateur 32 bits (donc non compatible avec le mode reel et c'est pourquoi cela marche en mode proteger). Pour forcer GCC a compiler en 16 bit, il suffit de rajouter l'instruction asm .code16 dans le code. Bon ben j'ai plus quà continuer.


Cette discussion est classée dans : fonction, probleme, test, compilation, pense


Répondre à ce message

Sujets en rapport avec ce message

probleme de cryptage avec la fonction crypt [ par kapes ] j'ai un probleme avec la foncion crypt() de c.en effet, j'ai ecrit un programme c qui creer des comptes utilisateurs. A l'interieur de cette fonction compilation sous MPLAB [ par alphab18 ] slt j'ai toujours un probleme de compilation sous MPLAB quand je prend un code du net ,et que je le copie  dans mplab pour tester  s'il fonctionne .j' Probleme de dll! (arguments...) [ par BlackWizzard ] salut les pro!voila, G une fonction contenu dans une dll mais cette fonction, je ne sait pas comment lui ajouter des arguments...voici un extrait du c PROBLEME DE LINK [ par gg00xiv ] je cree deux .obj avec le compilateur NASMW et la commande suivante : "nasmw -f obj hello.asm -o hello.obj" . Le probleme c que je veux les linker ens Fonction Download [ par Stormy ] StormyQuelqu'un aurait'il connaissance d'une fonction permettant le passage de données (de fichiers plutôt) par le fait d'un socket? Merci et @+ probleme avec l interruption affichage de chaine [ par M0NTOYA ] bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP probleme avec l interruption affichage de chaine [ par M0NTOYA ] bon voila mon probleme ,qd j utilse cette procedure(presentation) pour afficher une chaine de caractere presentation PROC PUSHA MOV AH,09h INT 21h POP Fonction DLL avec arguments [ par Arnotic ] Bonjour, J'ai une DLL avec une fonction qui prend 2 arguments (en C (char*, int). Lorsque je la charge j'ai aucun problème mais lors de l'appel à Probleme avec le serveur [ par TotalIllusion ] jai poster ma source (un prog sur les ISR et le serveur veut pas mettre le .zip (isr.zip).sa a cree 3 message comme dequoi jaurrais poster 3 source et projet assembleur [ par zipposou ] Salut a tousj'ai un enorme probleme, j'ai un projet à rendre en assembleur 68000, c en fait le jeu du serpent.Le probleme c que je ne connais pas gran


Nos sponsors


Sondage...

Comparez les prix

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,328 sec (4)

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