problem beim assemblieren

hi leute ...

ich hab ein einfaches "hallowelt"-programm in assembler aus einem tutorial entnommen und probiert es mit MASM32 Version 8.00 zu assemblieren:


.MODEL TINY
.RADIX 16

.CODE
ORG 0100

HALLO: MOV AH, 09
MOV DX, OFFSET TEXT
INT 21

MOV ACX, 4C00
INT 21
TEXT BYTE "HALLO", 0A, 0D, "$"

END HALLO


es kommt aber leider folgender fehlercode :


Assembling: D:\masm32\HalloWelt.asm
D:\masm32\HalloWelt.asm(11) : error A2006: undefined symbol : ACX
D:\masm32\HalloWelt.asm(15) : warning A4023: with /coff switch, leading underscore required for start address : HALLO
Volume in Laufwerk D: hat keine Bezeichnung.

Verzeichnis von D:\masm32

12.05.2003 21:18 206 HalloWelt.asm
1 Datei(en) 206 Bytes
0 Verzeichnis(se), 10.889.035.776 Bytes frei


kann mir jemand sagen woran es fehl schlägt ???

thx im voraus =)
shawn
 
Es gibt kein Register ACX.
Deshalb denkt der MASM, du beziehst dich auf eine Variable (Symbol) und bemängelt deren fehlende Deklaration.
Das zweite ist nur eine Warnung und kann fürs erste ignoriert werden.
 
stimmt ... ich hab die zeile korregiert :

MOV AX, 4C00

... wenn ich nun assembliere, kommt nur noch das warning, das auch oben steht ... wenn ich aber noch linken will kommt dies hier :


Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.

Assembling: D:\masm32\HalloWelt.asm
D:\masm32\HalloWelt.asm(15) : warning A4023: with /coff switch, leading undersco
re required for start address : HALLO
Microsoft (R) Incremental Linker Version 5.12.8078
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

HalloWelt.obj : fatal error LNK1190: invalid fixup found, type 0x0001
_
Link error
Drücken Sie eine beliebige Taste . . .


was genau ist mit "fatal error LNK1190: invalid fixup found, type 0x0001" gemeint ??
 
thx .... aber es hilft mir im moment nicht weiter, weil ich bei masm32 v. 8.00 keine möglichkeit finde irgendwie das compelieren zu beinflussen .. ich hab schon den gesamten ordner durchplügt und im readme-/help-file finde ich auch keine antworten .... weißt du wie es geht ??? oder kennt jemand einen zuverlässigen linker ??? oder meinst du, es bringt was wenn ich mal ne mail an microsoft schicke und die frage ???

... thx ...
 
Nur so eine Idee: Könnte es vielleicht sein, dass du diesen Code mit einem 16Bit-Assembler assemblieren musst? Noch etwas ist mir aufgefallen: Wie unterscheidet dieser Code eigentlich die hexadezimalen Angaben von den dezimalen? Muss da nicht ein h dahinter? Z.b. mov ax, 4c00h.oder int 21h.

mfG, Softrunner
 
gute idee , aber : RADIX 16 (zeile 2) heisst , laut dem tutorial, dass alle werte als hexadezimalzahl gelesen werden ...

ich werde es mal mit einem 16Bit-Assembler probieren ... das tutorial schlägt masm v. 6.xx vor ... ich dachte eigentlich , dass masm 8.00 abwärtskompatibel wär , wie z.B. C++ zu C ....

danke für den tip ..

gruß
shawn
 
Zurück
Oben