Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Ich komm mit keiner Sprache zurecht

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Möchtegernprogrammierer
Gast





BeitragVerfasst am: 04. Mai 2006 13:10   Titel: Ich komm mit keiner Sprache zurecht

Nachdem ich mit C und Python nicht zurecht kam,
versuch ich Assembler zu lernen, klappt aber nicht.
Einen Buch entsprechend hab ich folgendes eingegeben:
DATEN SEGMENT
Meldung db "Hoffentlich ist Assembler nicht zu schwer."
db "$"

DATEN ENDS
CODE Segment
ASSUME CS:CODE,DS:DATEN
Anfang: mov ax,DATEN
mov ds,ax
mov dx,offset Meldung
mov ah,9
int 21h

Und das sagt gcc :
as1.a: Assembler messages:
as1.a:1: Error: junk `Assembler-Programm' after expression
as1.a:1: Error: suffix or operands invalid for `das'
as1.a:2: Error: no such instruction: `daten SEGMENT'
as1.a:3: Error: no such instruction: `meldung db "Hoffentlich ist Assembler nicht zu schwer."'
as1.a:4: Error: no such instruction: `db "$"'
as1.a:6: Error: no such instruction: `daten ENDS'
as1.a:7: Error: no such instruction: `code Segment'
as1.a:8: Error: no such instruction: `assume CS:CODE,DS:DATEN'
as1.a:9: Error: too many memory references for `mov'
as1.a:10: Error: too many memory references for `mov'
as1.a:11: Error: too many memory references for `mov'
as1.a:12: Error: too many memory references for `mov'
as1.a:13: Error: junk `h' after expression
as1.a:13: Error: suffix or operands invalid for `int'

Ist das Buch oder der Compiler fehlerhaft?
Ich will es halt mit Assembler noch versuchen,
wenn das,wo nach es aussieht, auch nicht klappt,
verschrotte ich den PC und such mir ein anderes
Hobby.Ich versuch jetzt seit Jahren irgend wie
mit den Kisten klar zu kommen.
 

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 04. Mai 2006 20:25   Titel:

Zitat:
int 21h

Unter Linux wird der Interupt Nr. 80 aufgerufen, um an den Kernel zu übergeben. Das was du geschrieben hast ist ein DOS-Programm. Sofern du keinen uralten 16-Bit-Rechner hast, heißen die Register nicht ax, bx... sondern eax, ebx...(e für extended).

Zitat:
Und das sagt gcc :

Der gcc verwendet voreingestellt das Programm "as" zum assemblieren. "as" verlangt die AT&T-Syntax. Deine Schreibweise ist die der Intel-Syntax. Um Code aus der Intel-Syntax zu übersetzen, kannst du das Programm "nasm" verwenden.

Intel-Syntax (hallo.asm):
Code:

; Kommentare stehen hinter einem Semikolon
section .text
             
global _start

msg db  'Hallo welt.',0x0A
len     equ $ - msg

_start:
mov eax,4
mov ebx,1
mov ecx,msg
mov edx,len
int 0x80

mov eax,1
int 0x80

Programm übersetzen:
nasm -f elf hallo.asm
Objektdatei hallo.o linken:
ld hallo.o -o hallo



AT&T-Syntax (hallo.s):
Code:

# Kommentare stehen hinter einer Raute
.data

msg:    .ascii  "Hallo Welt.\n"
lmsg:   .long   .-msg

.text

_start:
.global _start
movl    $4,%eax
movl    $1,%ebx
leal    msg,%ecx
movl    lmsg,%edx
int     $0x80

movl    $1,%eax
int     $0x80


Programm übersetzen:
gcc -c hallo.s
Programm linken:
ld hallo.o -o hallo

Eine Liste der Nummern der Systemaufrufe steht in der Datei "/usr/include/asm-i386/unistd.h". Mit deutschsprachigen Anleitungen sieht es eng aus. Eine sehr gute: http://www.fh-frankfurt.de/~dumbach/manuskripte/. asmanu_9.pdf heißt sie. Die Datei gdi_w01_v2.pdf ist genauso interessant (gdi = Grundlagen der Informatik).


MfG, Klopskuchen
_________________
When all else fails, read the instructions .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 04. Mai 2006 21:29   Titel:

Programmieren lernt man vermutlich immer aus Spaß...

Was möchtest du denn überhaupt erreichen? Wenn dir C zu unverständlich war ist Assembler eine ganz schlechte Wahl. Irgendwelche Beispiele aus Büchern übernehmen bringt dich auf keinen Fall weiter.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

klopskuchen
prolinux-forum-admin


Anmeldungsdatum: 26.06.2004
Beiträge: 1444

BeitragVerfasst am: 04. Mai 2006 21:33   Titel:

@Janka
Ich wette er sucht die Brücke zwischen dem Abstrakten des Rechners und der Physik. Eine konkrete Vorstellung was da vor sich geht. Da ist asm doch gar nicht schlecht, da er sich zwangsläufig mit CPU, Speichermanagement(im physikal. Sinne) usw. befassen muß.

MfG, Klopskuchen
_________________
When all else fails, read the instructions .
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Möchtegernprogrammierer
Gast





BeitragVerfasst am: 05. Mai 2006 8:07   Titel: Danke

Danke, ich hab mir die PDF Dateien über Assembler und auch über C
abgespeichert und ich lass natürlich den PC leben Smile
Ich werd manchmal etwas depressiev, wenn so gar nichts klappt,
hat sicher was mit den enormen Problemen zu tun, die ich am Anfang
mit PCs hatte. Crying or Very sad
C klappt so weit schon, aber letztendlich hab ich aus keinen Buch
was lernen können, was nicht auch ein cleveres bash-scipt kann.
Jetzt muss ich in C erst mal umlernen, weil ich einen Controller
programmieren will, wo halt ganz andere Bibliotheken gebraucht
werden. Eigentlich hätte ich das, laut Lehrplan, in meiner Ausbildung
zum Energieelektroniker lernen müssen, wie so Vieles,war aber nichts.
Mit Assembler komm ich im 64kB-Speicher natürlich weiter, muss nur
natürlich andere Befehle lernen, denke aber,dass ich trotzdem mit
Programmieren für den PC erst mal besser lerne und das will ich
ja auch können, die extremen Möglichkeiten und überhaupt die
direckt am Prozessor arbeitende Sprache, faszinieren mich sehr.
Wenn ich vortgeschrittener bin, stürm ich die Berufsschule,
installier auf alle Rechner das bessere System und zeig den
Lehrern, wie man das richtig macht Wink
 

schmackes
Gast





BeitragVerfasst am: 06. Mai 2006 0:32   Titel:

die haben wir am liebsten!
Zitat:
Wenn ich vortgeschrittener bin, stürm ich die Berufsschule,
installier auf alle Rechner das bessere System und zeig den
Lehrern, wie man das richtig macht


es reicht nicht mehr nur ein paar neue treiber zu installieren, weil der admin hat ja keine ahnung. also kommt der sohn mal vorbei weil der ist ja ein computerfreak, der kann das besser.
die admins lieben so leute wie dich.
 

zu faul zum einloggen
Gast





BeitragVerfasst am: 06. Mai 2006 0:56   Titel:

scmackes hat folgendes geschrieben::
die admins lieben so leute wie dich.

...die sich dermaßen reinhängen, daß ein kurzweiliger Rückschlag Gedanken an die Vernichtung des Rechenknechtes aufkommen lassen. Nun sei mal nicht so. Wink


MfG, Klopskuchen
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy