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 :

Segfault dans une instruction mov dword [esi],ecx


Sujet :

x86 32-bits / 64-bits Assembleur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 407
    Par défaut Segfault dans une instruction mov dword [esi],ecx
    Bonjour,

    J'ai un plantage de code. Après vérification au debugger, il s'arrête sur cette instruction > mov dword [esi],ecx
    Je ne comprend pas pourquoi.

    Voilà la partie du code concerné:

    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
    28
    29
    30
    31
    32
    33
    34
     
     
     
    proc tcpip_hdr src_addr,\
    	       src_port,\
    	       dst_addr,\
    	       dst_port,\
    	       tcp_flags
     
     
    ;-----------[iphdr offset 1]---------------
     
    	xor	ecx,ecx
     
    	mov	ch,ihl
     
    	mov	cl,version
    	shl	cl,4
    	ror	ecx,12
     
    	mov	cl,tos
    	ror	cx,6
     
    	mov	cl,ip_ecn
    	rol	cx,6
    	ror	ecx,8
     
    	mov	cx,tot_len
    	ror	cx,8
    	rol	ecx,16
     
    	mov	dword [esi],ecx
     
    ;------------------------------------------

  2. #2
    Membre chevronné Avatar de bifur
    passe le balais et l'aspirateur
    Inscrit en
    Mars 2008
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : passe le balais et l'aspirateur

    Informations forums :
    Inscription : Mars 2008
    Messages : 314
    Par défaut
    comment ça il s'arrête? il y as une erreur ou est ce que le processeur freeze?
    si il y as une erreur sur cette instruction ça doit venir d'une autre partie du code parce que la on n'arrive pas a savoir a quoi corrspond esi

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 407
    Par défaut
    Non pas de freeze juste une erreur, celle ci:

    00:00:33 access violation when writing to [00000000]

    Désolé je galère un peu, j'ai repris l'asm après plusieurs années d'arrêt total du coding donc je me questionne sur certaines choses.
    En particulier ce mov dword [esi],ecx, est-ce qu'on a le droit d'écrire ça ? Ca a un sens pour vous ? Ca veut dire quoi exactement ?
    Parce que plus loin dans le programme je continue à empiler sur esi, ça va jusque mov dword [esi+48],ecx
    Vous trouvez ça normal ou bien j'étais défoncé quand j'ai codé ce truc ??

  4. #4
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Sur ton code esi n'est pas initialisé ,du coup tu écris sur l'adresse 0 apparemment ,donc un segfault.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 407
    Par défaut
    ok merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 407
    Par défaut
    Qu'est ce que tu veux dire par "initialiser esi" ?
    Je dois lui adresser une valeur mémoire c'est ça ?

    J'ai fait un mov esi,valeur
    J'ai testé avec plusieurs valeurs différentes mais aucune ne fonctionnent..

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/01/2008, 13h59
  2. [XSLT]passer une variable js dans une instruction xsl
    Par ounours dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 12/04/2007, 18h39
  3. Type illégal dans une instruction Write/writeln
    Par vuong1 dans le forum Delphi
    Réponses: 4
    Dernier message: 10/01/2007, 06h24
  4. caractère critique dans une instruction sql
    Par Damien10 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/01/2007, 16h54
  5. Problème dans une instruction Recordset
    Par jessy212 dans le forum Access
    Réponses: 2
    Dernier message: 29/08/2006, 10h42

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