Assembler "too many memory references for 'mov'"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Wikinator
Beiträge: 259
Registriert: 11.06.2005 13:39:20
Wohnort: Freiburg
Kontaktdaten:

Assembler "too many memory references for 'mov'"

Beitrag von Wikinator » 02.04.2006 20:06:33

Hallo,

ich versuche Assembler nach diesem Tutorial [1] zu lernen. Dazu wollte ich dieses kleine Beispiel ausprobieren:

Code: Alles auswählen

mov AH, 2H
mov BH, 0H
mov DL, C8H
mov DH, C8H

INT 16
allerdings sagt as unter Pentium II und AMD Athlon 1800+:

Code: Alles auswählen

too many memory references for 'mov'
zu jeder Zeile und ein:

Code: Alles auswählen

Error: suffix or operands invalid for `int'
am Schluß, was mach ich falsch?

[1] http://www.programmersheaven.com/zone5/cat792/15526.htm
Debian/unstable
copy

Computer sind die logische Weiterentwicklung des Menschen — Intelligenz ohne Moral.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 02.04.2006 22:49:41

Wikinator hat geschrieben:was mach ich falsch?
Entweder verwendest du die falsche Syntax oder den falschen Compiler

Dieses Tutorial bezieht sich auf die Intel-Syntax, während der GNU AS die AT&T Syntax bevorzugt

Kannst du aber leicht mit "intel2gas" für den GNU AS aufbereiten

Code: Alles auswählen

intel2gas x.txt
        movb $0x2,%ah
        movb $0x0,%bh
        movb $0xC8,%dl
        movb $0xC8,%dh

        int $16
Es gibt auch noch den NASM, der eine zu Intel "ähnliche" Syntax verwendet


Gruß
gms

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 02.04.2006 23:41:15

Abgesehen davon kannst du das Tutorial eh vergessen, da es für DOS/Windows geschrieben ist (int 16).

Unportabler als Assembler geht es nicht mehr.

Benutzeravatar
Wikinator
Beiträge: 259
Registriert: 11.06.2005 13:39:20
Wohnort: Freiburg
Kontaktdaten:

Beitrag von Wikinator » 03.04.2006 15:43:35

am liebsten würde ich auch für Mac OS X oder Debian Assembler programmieren, aber da finde ich keine guten Tutorials.
Debian/unstable
copy

Computer sind die logische Weiterentwicklung des Menschen — Intelligenz ohne Moral.

Benutzeravatar
Wikinator
Beiträge: 259
Registriert: 11.06.2005 13:39:20
Wohnort: Freiburg
Kontaktdaten:

Beitrag von Wikinator » 06.04.2006 21:36:41

ich habe zwar das hier [1] gefunden, aber es ist doch ein wenig zu kurz für mich. Kennt jemand noch ein anderes?

[1] http://database.sarang.net/study/linux/ ... ux-asm.txt
Debian/unstable
copy

Computer sind die logische Weiterentwicklung des Menschen — Intelligenz ohne Moral.

glar00k
Beiträge: 790
Registriert: 09.07.2002 23:01:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Beitrag von glar00k » 07.04.2006 11:46:58

Wikinator hat geschrieben:am liebsten würde ich auch für Mac OS X oder Debian Assembler programmieren, aber da finde ich keine guten Tutorials.
Uhm, Assembler kann man nur für bestimmte Prozessoren schreiben, nicht für Betriebssysteme. Gut, die Notation kann sich je nach Assemblierungstool unterscheiden, aber sonst ist der Befehlssatz Prozessorabhängig.

Grüße

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Beitrag von novalix » 10.04.2006 18:18:06

hi,

es gibt ein Assembly-HOWTO bei tldp.org bzw. in den doc-linux debian-packages.
fuer ppc hab ich mal nen howto bei ibm gefunden. hab den link nicht mehr aber google mit "ibm", "developerworks", "assembler" koennte es bringen.

ciao, niels
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Antworten