"Assembler - Maschinennahes Programmieren von Anfang an" (mit Windows) - Rowohlt Verlag - Reiner Backer
-
moin!
ich hätte da mal 2 Fragen:
- Warum sehen die Codes, die im Internet sehe alle ganz anders aus, als das 1. Programm von dem Buch(s. Titel):
Da sind irgendwie immer Punkte vor vielen Wörtern, in dem Buch net.
Der Buch Code sieht so aus:
DATEN SEGMENT Meldung db "Assembler ist leicht!" 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
- Nasm und masm melden viele Fehler bei dem Code( wie gesagt habe ihn aus dem Buch abgetippt und 3.mal kontrolliert)
DANKE
und sry falls die Fragen schon 20. mal gefragt wurden, ich habe sie durch die Suche nicht finden können.
- Warum sehen die Codes, die im Internet sehe alle ganz anders aus, als das 1. Programm von dem Buch(s. Titel):
-
Hi.
Tja, das ist eben TASM-Syntax. Die versteht weder der MASM noch der NASM.
-
ahhhhhhhhhhhhhh
Danke hatte dann woll was im Buch flasch verstanden.
thx
-
Moin KILLSMAKER,
leider irrt Nobuo T hier teilweise. Das obige Programm läßt sich auch mit MASM übersetzen(aber nicht mit NASM).
Das Du Fehlermeldungen bekommst, wenn Du MASM benutzt, liegt nicht am Assembler sondern am Linker. MASM ruft den Linker automatisch auf. Der Linker jedoch, der dem MASM-Paket beiliegt, ist ein 32-Bit-Linker, kann also nicht (in Worten: nicht) DOS-Exe erzeugen!!!!
Wenn Du mit MASM DOS-Programme erstellen möchtest, dann brauchst Du einen 16-Bit-Linker. Benutze mal die Suchfunktion (MASM, Linker, o.ä.) für den Assembler-Abschnitt. Es gibt schon einige Threads mit Hinweisen, wo der 16-Bit-Linker im Netz zu finden ist.
Das Programm übersetzt Du dann mit ml /c DeinProgramm.asm
Die Option /c unterbindet das automatische Starten des Linkers. Dann rufst Du den 16-Bit-Linker von Hand auf(mit entsprechenden Optionen, je nach benutztem Linker).
[NACHTRAG]
Unter http://www.c-plusplus.net/forum/viewtopic-var-t-is-93353.html ist eine Beschreibung bezüglich des 16-Bit-Linkers enthalten.
Ciao...
-
Cool.
Trotzdem Danke an Euch BEIDEN!!!
thx