Mein erstes ASM-Programm
-
Hallo zusammen.
Habe das erste Beispielprogramm aus einem Assembler-Anfänger-Buch abgetippt und schon meckert mich der Assembler an.
Das Programm:
DATEN SEGMENT Meldung db "Assembler ist garnicht so 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 mov ah, 4Ch int 21h CODE ENDS END Anfang
Die Fehlermeldungen:
D:\Assembler\asm1.asm(13) : error A2004: symbol type conflict
D:\Assembler\asm1.asm(29) : warning A4023: with /coff switch, leading underscore required for start address : AnfangHabe vor längerer Zeit schon mal mit ASM angefangen und einen älteren, befehlszeilenorientierten Assembler (MASM) benutzt - der beschwerte sich damals allerdings nicht. Jetzt benutze ich MASM32 in Version 9.00 und der schimpft mich. Passt dem vielleicht die Bezeichnung DATEN nicht mehr?
Kann mir vielleicht einer von Euch helfen?
Danke Euch für's lesen.
Gruß
Manolo
-
... gibt bereits einen Thread mit diesem Problem
-
**
C:\masm32\bin>ml /Fl test.asm
Microsoft (R) Macro Assembler Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.Assembling: test.asm
**Microsoft (R) Macro Assembler Version 8.00.50727.42 07/01/07 18:24:22 test.asm Page 1 - 1 0000 DATEN SEGMENT 0000 41 73 73 65 6D 62 Meldung db "Assembler ist garnicht so schwer" 6C 65 72 20 69 73 74 20 67 61 72 6E 69 63 68 74 20 73 6F 20 73 63 68 77 65 72 0020 24 db "$" 0021 DATEN ENDS 0000 CODE SEGMENT ASSUME CS:CODE, DS:DATEN 0000 _Anfang: 0000 B8 0021 R mov ax, offset DATEN 0003 8E D8 mov ds, ax 0005 BA 0000 R mov dx, offset Meldung 0008 B4 09 mov ah, 9 000A CD 21 int 21h 000C B4 4C mov ah, 4Ch 000E CD 21 int 21h 0010 CODE ENDS END _Anfang Microsoft (R) Macro Assembler Version 8.00.50727.42 07/01/07 18:24:22 test.asm Symbols 2 - 1 Segments and Groups: N a m e Size Length Align Combine Class CODE . . . . . . . . . . . . . . 16 Bit 0010 Private DATEN . . . . . . . . . . . . . 16 Bit 0021 Private Symbols: N a m e Type Value Attr Meldung . . . . . . . . . . . . Byte 0000 DATEN _Anfang . . . . . . . . . . . . L Near 0000 CODE Public 0 Warnings 0 Errors
Bei dir zu ändern _Anfang, END _Anfang und mov ax, offset DATEN
Zum linken wirst du einen 16 Bit Linker benötigen, soll's im Internet geben.
-
du weißt, dass das 16Bit Realmode-DOS-Code ist? Also Sachen, die man seit über 10 Jahren nicht mehr so macht?
-
Und du weisst, dass man diese Sachen in DOS auch heute noch genauso macht (zumindest, wenn man keinen vernuenftigen Extender benutzt)? :p
BTW steht ein solches Programm auch heute noch am Anfang praktisch jedes Windows-Programms.
-
Nobuo T schrieb:
Und du weisst, dass man diese Sachen in DOS auch heute noch genauso macht (zumindest, wenn man keinen vernuenftigen Extender benutzt)? :p
BTW steht ein solches Programm auch heute noch am Anfang praktisch jedes Windows-Programms.
Er arbeitet aber offensichtlich nicht mit DOS, sondern mit Windows :p
-
Hä, rüdiger, ich versteh nicht was du sagen willst???