Arrayzugriff -> Segmentation fault

spaci76
Mausschubser
Mausschubser
Beiträge: 52
Registriert: 9. Mai 2009 18:27

Arrayzugriff -> Segmentation fault

Beitrag von spaci76 »

Moin zusammen,

ich versuche mich gerade an dem Zugriff auf eine Array und komme einfach nicht dahinter warum ich hier ein Segmentation fault bekomme. Im Grunde ist das ja das Gleiche wie auf der Seite 15 vom Satz 5.

Hier das Beispiel:

Code: Alles auswählen

.data
        intout: .string "Ergebnis %d \n"
        dat:    .long 1, 2, 3, 4, 5, 6, 7
.text
.globl main
        movl $0, %edi
main:
movl dat(,%edi,4), %eax

pushl %eax
pushl $intout
call printf
movl $1, %eax
int $0x80
Wenn ich nun movl $0, %edi aus dem globl rausnehme und in main stecke dann funktioniert es .. Aber es würde der Funktionsweise wie es auf der Folie ist widersprechen.

Kann mir das jemand bitte erklären..

Vielen Dank im Voraus

Benutzeravatar
zimpfer
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 15. Mär 2009 01:07

Re: Arrayzugriff -> Segmentation fault

Beitrag von zimpfer »

In dem Beispiel auf der Folie gibt es keine main:-Sprungmarke, die wurde wohl aus Platzgründen weggelassen.

Diese main-Marke ist der Einstiegspunkt bei der Ausführung enie Programms (wie auch in Java , C ...), deshalb gibt es ein Seg-Fault, weil die Zuweisung an edi nicht ausgeführt wird.

Antworten

Zurück zu „Archiv“