Nachtrag: - FTSP - Programm crash

06/06/2009 - 21:42 von Jens Kallup | Report spam
Das folgende ProgramSnippet verurscht ein Fehler - doch und wie?
MfG
Jens

segment .data
@@zahler@@: db 0
@varpa_0_var: db "var0",0
@varpa_0: dd 10.1


segment .text
_init_variabseln:
push ebp
mov ebp, esp
finit
fldz
leave
ret

global _start_main
_start_main:
push ebp
mov ebp, esp
call _init_variabseln
mov dword [eax], 21
mov dword [eax+4], 3
fld qword [eax]
fstp qword [ebx]
push dword 0
call _exit
leave
ret
 

Lesen sie die antworten

#1 Markus Wichmann
06/06/2009 - 22:23 | Warnen spam
Jens Kallup wrote:
Das folgende ProgramSnippet verurscht ein Fehler - doch und wie?
MfG
Jens

segment .data
@@zahler@@: db 0
@varpa_0_var: db "var0",0
@varpa_0: dd 10.1


segment .text
_init_variabseln:
push ebp
mov ebp, esp
finit
fldz
leave
ret

global _start_main
_start_main:
push ebp
mov ebp, esp
call _init_variabseln
mov dword [eax], 21


^^^

Nanu? Das dürfte wohl mit segfault baden gehen. Du hast eax bislang
nicht angefasst, benutzt es aber jetzt als Pointer. Die Zahl in eax kann
irgendwas sein, entsprechen kann sie auch überallhin zeigen. Der
wahrscheinlichste Fall ist der, das diese Zahl gerade außerhalb deines
Adress Space zeigt. Unwahrscheinlicher (das wàre dann dein Glück) ist,
dass gerade die .data-Section angepeilt wird. Und dein Pech wàre es,
wenn die .text-Section anvisiert wurde. Dann verànderst du aus Versehen
den Code.

mov dword [eax+4], 3
fld qword [eax]
fstp qword [ebx]


^^^
Same here.

push dword 0
call _exit
leave
ret



HTH,
Markus

GUI - ein Hintergrundbild und zwölf XTerms

vim -c "exec \"norm iwHFG#NABGURE#IVZ#UNPXRE\"|%s/#/ /g|norm g??g~~"

Ähnliche fragen