TASM-Syntax mit NASM

Pascal, Basic und andere nicht aufgelistete
Antworten
nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

TASM-Syntax mit NASM

Beitrag von nufan » Do Mai 07, 2009 1:56 pm

Hallo :)
Meine heutige Frage: Kann ich Assembler im TASM-Syntax auch mit NASM übersetzen? Ich habe heute folgendes Beispiel bekommen (gibt Text aus, keine Ahnung was da genau passiert, sollte nur zum Testen der Software dienen):

Code: Alles auswählen

DOSSEG
.model small
.data
 txt db 'Assemblerprogramm by xy',13,10,'$'
.code
     assume cs:@code,ds:@data
     mov ax,@data
     mov ds,ax              
     mov ax,3
     int 10h               
     mov dx,offset txt       
     mov ah,9
     int 21h                 
     mov ax,4c00h
     int 21h              
END
Folgende Fehlermeldungen:

Code: Alles auswählen

$ nasm prog1.asm
prog1.asm:2: error: parser: instruction expected
prog1.asm:6: error: parser: instruction expected
prog1.asm:11: error: comma or end of line expected
Auch der -t-Flag für "TASM compatible mode" bringt nichts - immer noch die gleichen Fehler. Ebenso -f mit elf als Parameter.
Mache ich irgendwas falsch? Oder geht das einfach nicht? In einer XP-VM hab ichs mit TASM und TLINK ohne Probleme zum Laufen bekommen
Dieses "DOSSEG" sieht mir auch verdächtig aus. Hat das irgendwas mit DOS/Windows zum tun?

Wie gesagt, ich habe 0 Ahnung, wir sollten nur mal ein fertiges Programm zum Laufen bekommen.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: TASM-Syntax mit NASM

Beitrag von cloidnerux » Do Mai 07, 2009 2:28 pm

Dieses "DOSSEG" sieht mir auch verdächtig aus. Hat das irgendwas mit DOS/Windows zum tun?
msdn hat geschrieben:Microsoft Macro Assembler Reference
.DOSSEG

Orders the segments according to the MS-DOS segment convention: CODE first, then segments not in DGROUP, and then segments in DGROUP.
So wie es aussieht ja.
Aber ich glaube du brauchst es nicht.
Bin mir aber nicht sicher.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: TASM-Syntax mit NASM

Beitrag von nufan » Do Mai 07, 2009 2:32 pm

cloidnerux hat geschrieben:
Dieses "DOSSEG" sieht mir auch verdächtig aus. Hat das irgendwas mit DOS/Windows zum tun?
Aber ich glaube du brauchst es nicht.
Bin mir aber nicht sicher.
Ich habs mal auskommentiert. Der Fehler in Zeile 2 ist dann weg, aber die anderen beiden sind immer noch da. Aber dieses DOSSEG muss doch auch irgendeinen Sinn haben. Fehlt da was Wichtiges wenn ichs einfach rausnehme?
Danke für die Erklärung, aber die ergibt für mich leider nicht viel Sinn...

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: TASM-Syntax mit NASM

Beitrag von cloidnerux » Do Mai 07, 2009 2:54 pm

aber die anderen beiden sind immer noch da.
Also, mal gegoogelt und festgestellt das ASSUME kein befehl von NASM ist
http://www.mrunix.de/forums/archive/ind ... 31423.html
Und für das:

Code: Alles auswählen

mov dx,offset txt 
Versuche es mal mit

Code: Alles auswählen

mov dx, txt
ansonsten habe ich keine ahnung was das offset bringen soll.
Habe auch hier nru so ein altes MS-DOS Buch über Assembler.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: TASM-Syntax mit NASM

Beitrag von nufan » Do Mai 07, 2009 3:02 pm

Da ist nach dem Entfernen von DOSSEG doch noch ein Fehler, muss ich übersehen haben. Lösche ich es weg und besser ich die Zeile mit offset aus, kommen folgende Meldungen:

Code: Alles auswählen

$ nasm prog1.asm
prog1.asm:2: error: attempt to define a local label before any non-local labels
prog1.asm:2: error: parser: instruction expected
prog1.asm:3: error: attempt to define a local label before any non-local labels
prog1.asm:6: error: parser: instruction expected
Die Zeilennummern stimmen noch mit dem geposteten Code überein.
Hat dieser -t-Flag irgendeinen Effekt? Ich merke bis jetzt nichts davon, mit ihm die gleichen Fehler wie ohne ihn.

Wenn es all diese Befehle für NASM nicht gibt (oder jedenfalls nicht mit dem gleichen Syntax), werde ich wohl bei der VM bleiben...

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: TASM-Syntax mit NASM

Beitrag von cloidnerux » Do Mai 07, 2009 3:11 pm

Die Syntax ist Intelsyntax und NASM unterstützt nur die AT&T syntax oder anderstrum.
Auf jedenfall wurde in einem link den ich dir gepostet habe über ein intel Kompatibilitätsmodus gesprochen.
Viellciht funktioniert das ja.
Redundanz macht wiederholen unnötig.
quod erat expectandum

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: TASM-Syntax mit NASM

Beitrag von nufan » Do Mai 07, 2009 4:27 pm

Ich hab jetzt ne Weile gegoogelt und soweit ich das sehen kann ist das Intel-Syntax (nehme ich an wegen der fehlenden Präfixe). Laut Wikipedia ist NASM für den Intel-Syntax und TASM ebenfalls. Anscheinend verwende ich irgendwelche DOS-Befehle die nicht zum Standard gehören.
Um ganz sicher zu gehen hab ich auch schon den GNU-Assembler und yasm versucht. GAS im Intel und AT&T-Mode. Da hatte ich noch mehr Fehlermeldungen. Das konvertieren mit intel2gas ging auch schief. Dann werde ich bis ich genug Wissen hab um mir den Rest selbst beizubringen wohl viel Zeit vor Virtualbox verbringen.


BTW: NASM does not ASSUME.

Benutzeravatar
Kaestchen
Beiträge: 24
Registriert: So Jul 31, 2011 7:17 pm
Wohnort: Ruhrgebiet

Re: TASM-Syntax mit NASM

Beitrag von Kaestchen » Mi Aug 03, 2011 7:48 pm

Hat sich da an deinem Wissensstand etwas getan?
Um eine sinnvolle Frage stellen zu können, muss man die Ausmaße seines Unwissens kennen.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: TASM-Syntax mit NASM

Beitrag von nufan » Mi Aug 03, 2011 7:52 pm

Kaestchen hat geschrieben:Hat sich da an deinem Wissensstand etwas getan?
Ich hab NASM gelernt und kann einfache Programme auf x86 und amd64 CPUs entwickeln.
Siehe z.B.: http://www.proggen.org/doku.php?id=project:wordcount
Als Lektüre kann ich dir folgendes empfehlen: http://www.amazon.de/Assembly-Language- ... 515&sr=8-2
TASM hab ich inzwischen aufgegeben, brauchte das auch nur kurz für die Schule.

Antworten