Frage zu MASM
-
Hallo,
ich hab mir den MASM32 gesaugt und den 16 Bit Linker. nun bin ich gerade beim
The Real Adok's Way to Assembler Tutorial und habe den folgenden Code abgetippt und gespeichert als test.asmCode:
MODEL TINY ;Für COM-Files
CODE SEGMENT ;Beginn Code-Seg
ASSUME CS:CODE;Zuweisung an CS
ORG 100h ;Startadresse COM
start: ;Startlabel
MOV AX,0902h ;Funkt. 9h, ASCII-Code 2h
MOV BX,15 ;Farbcode Weiß
MOV CX,1 ;Anzahl der Zeichen = 1
INT 10h ;Zeichen auf Screen bringen
MOV AX,4C00h ;Funkt. 4Ch
INT 21h ;DOS-Exit
CODE ENDS ;Ende Code-Seg
END start ;Ende des Proggysnun gebe ich folgendes ein:
E:\masm32\bin>ml /c c:\test.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.Assembling: c:\test.asm
c:\test.asm(1) : error A2008: syntax error : MODELE:\masm32\bin>ml /at c:\test.asm
Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.MASM : warning A4018: invalid command-line option : /at
MASM : fatal error A1017: missing source filenameE:\masm32\bin>
hab ich da was falsch gemacht?Thx 4 Help schonmal.
-
Moin AmigaDos,
irgendwie hast Du zwei Möglichkeiten vermischt, wie man den Quellcode gestalten kann.
1. Vollständige Segmentkontrolle
2. Vereinfachte SegmentkontrolleVollständige Segmentkontrolle
CODE SEGMENT WORD PUBLIC 'CODE' ASSUME CS:CODE, DS:CODE org 0100h start: jmp begin ; Hier könnten nun Daten plaziert werden, deshalb jmp begin als erster Befehl, ; um den Datenbereich zu überspringen begin: MOV AX,0902h ;Funkt. 9h, ASCII-Code 2h MOV BX,15 ;Farbcode Weiß MOV CX,1 ;Anzahl der Zeichen = 1 INT 10h ;Zeichen auf Screen bringen MOV ax, 04c00h INT 021h CODE ENDS END start
Vereinfachte Segmentkontrolle
.MODEL TINY, C, OS_DOS ;Für COM-Files .CODE .startup MOV AX,0902h ;Funkt. 9h, ASCII-Code 2h MOV BX,15 ;Farbcode Weiß MOV CX,1 ;Anzahl der Zeichen = 1 INT 10h ;Zeichen auf Screen bringen .exit 0 END
Beide Varianten übersetzt Du folgendermaßen:
ml /AT /c test.asm
link16 /TINY test.obj;
(Mein 16-Bit-Linker habe ich link16 genannt, ist der von Microsoft)Ciao...
-
Dann ist das Tutorial dreck, den so steht der Code da drinne. Und angebelich soll da alles MASM kompatibel sein.
Ps. den 16 Bit linker hab ich auch link16 genannt
kann mir denn eventuell jemand ein leicht verständliches ASM Tutorial auf Deutsch empfehlen? link geben?
-
Das Tutorial ist wohl für TASM gemacht, und von MASM gibt's ja auch verschiedene Versionen (5 und 6 meine ich hauptsächlich), die nicht alle genau die gleiche Syntax schlucken.
-
Ja das ist schon klar, bei Basic gibts auch verschiedene Syntax,
aber ich denke mal so wie bei Basic, gibts doch bei ASM auch nen Std. Satz an Befehlen den jeder Compiler kennen muss, und der rest is nur Compiler bezogener extra. oder nicht?
ich brauch ja nur nen Tutorial für den hauptsyntax
-
Es gibt keine Hauptsyntax, jeder Assembler macht das anders. TASM und MASM sind noch die zwei ähnlichsten.
-
gibt es garkein Standart unter ASM ? kann ich mir irgendwie nicht vorsteellen, aber kennt denn wenningstens jemand nen gutes Tutorial zu MASM?
-
also ich hab dos-asm-programmierung mit snakebytes-AssemblerTut angefangen und ich denke, dass der das ganz gut gemacht hat (einfach mal googlen)