Interro a 2012 monsieur NVS : erreur segmentation

Voir le sujet précédent Voir le sujet suivant Aller en bas

resolu Interro a 2012 monsieur NVS : erreur segmentation

Message  algra le Jeu 01 Mai 2014, 15:03

Bonjour, j'ai essaye de faire l'exercice1  de l'interro a de 2012 de monsieur NVS; l’énonce est en gros: la fonction brol que l'on doit utiliser a pour caractéristique:
-la fonction retourne un entier
-le 1 arg ==> adresse du 1 caractère 0 termine
-le 2 et 3 arg==> entier code sur 4 octets

la fonction ne nettoie pas la pile.

On doit détermine la valeur de retour de la fonction et affiche via la fonction affBin(fait au td7)

Code:
global main

extern brol
extern affBin

section.data :
 chaine DD `Et maintenant, que vais-je faire`,0
i1 DD 6
 i2 DD 3

section .txt:
main:
 push chaine
 push i1
 push i2
 call brol
 add esp,12 ; nettoyage de la pile
 

push eax  ;valeur de retour
call affBin

 mov eax,1
 mov ebx,0
 int 0x80
si je n'effectue pas le call brol(nom de la fonction) pas d'erreur, cependant si je l'effectue ==>Erreur de segmentation ou est mon erreur ... Rolling Eyes


Dernière édition par algra le Jeu 01 Mai 2014, 21:42, édité 3 fois

algra

Nombre de messages : 45
Age : 21
Prénom : Alexis
Statut : Ancien
Date d'inscription : 16/09/2013

Revenir en haut Aller en bas

resolu Re: Interro a 2012 monsieur NVS : erreur segmentation

Message  mvh le Jeu 01 Mai 2014, 20:09

avant que Mr nvs te réponde ... tu écriras 100 fois :
Mr nvs n'est pas une erreur de segmentation ...

_________________

La fête c'est nul sans Kidibul !
... (vieux proverbe local)



mvh

Nombre de messages : 5973
Age : 104
Prénom : Marcel VANHAELEN
Statut : (fin de bail)
Win 3.1 à reprendre
Localisation : Koekeliek de Baselberg
Date d'inscription : 06/12/2006

Revenir en haut Aller en bas

resolu Re: Interro a 2012 monsieur NVS : erreur segmentation

Message  nvs le Jeu 01 Mai 2014, 22:09

je vois ton code, algra, et voici ce je me dis.

si
Code:
push chaine
place sur la pile l'adresse d'un caractère, alors
Code:
push i1
ne peut pas servir à placer un entier sur la pile,

ou,

si
Code:
push i1
place un entier sur la pile, alors
Code:
push chaine
ne peut pas placer une adresse de caractère sur la pile.




 pale 

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: Interro a 2012 monsieur NVS : erreur segmentation

Message  algra le Sam 03 Mai 2014, 09:48

Problème résolu

Code:
 global main

extern brol
extern affBin

section.data :
 chaine DD `Et maintenant, que vais-je faire`,0
i1 DD 6
 i2 DD 3

section .txt:
main:
 push chaine
 push dword [i1]
 push dword [i2]
 call brol
 add esp,12 ; nettoyage de la pile
 

push eax  ;valeur de retour
call affBin

 mov eax,1
 mov ebx,0
 int 0x80

algra

Nombre de messages : 45
Age : 21
Prénom : Alexis
Statut : Ancien
Date d'inscription : 16/09/2013

Revenir en haut Aller en bas

resolu Re: Interro a 2012 monsieur NVS : erreur segmentation

Message  nvs le Sam 03 Mai 2014, 11:43

pas avec le code posté ci-dessus. il manque un espace entre
Code:
n
et
Code:
.
pour avoir
Code:
section .data


de plus, si tu veux utiliser aisément le débogueur, je te conseille de changer
Code:
section .txt
en
Code:
section .text




 What a Face 

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

resolu Re: Interro a 2012 monsieur NVS : erreur segmentation

Message  Contenu sponsorisé Aujourd'hui à 14:28


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum