Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 18. Nov 2018 9:26

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 29. Sep 2006 14:47 
Offline

Registriert: 29. Sep 2006 12:10
Beiträge: 1
Hallo zusammen,

wer kann mir erklären, warum folgendes, winziges Assembler-Programm mit einem Speicherzugriffsfehler abbricht:
Code:
section .text
     global _start

_start:
     mov eax,1
     mov ebx,0
     int 0x80
Eigentlich sollte hier ja nur exit() aufgerufen werden. Bei folgender Version funktioniert das einwandfrei:
Code:
section  .data
     hurz: db 'XYZ'

section .text
     global _start

_start:
     mov eax,1
     mov ebx,0
     int 0x80
Ohne zumindest ein Byte in der Data-Section zu haben will er nicht!

Das ganze mit nasm -f elf assembliert (Version 0.98.39) und mit ld unter SuSE 10.0 gelinkt.

Danke schonmal!


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 29. Sep 2006 18:52 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
Es ist Linux-Aufrufkonvention, eine .data-Sektion zu haben. Dort werden beispielsweise das Environment und die Aufrufparameter des Prozesses abgelegt. Existiert das Symbol nicht, schlägt das Kopieren fehl.

Janka

_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de