![]() |
ASM mit NASM Problem
So, ich versuche mich gerade an ASM. Dazu hab eich ein Buch für MASM und TASM. Dort steht folgender Code:
Code:
Und als Ergebnis habe ich dann das:
daten segment
meldung db "Assembler ist geil." db "$" daten ends code segment assume cs:code, ds:daten anfang: mov ax, daten mov ds,ax mov dx, offset meldung mov ahg,9 int 21h mov ah, 4ch int 21h code ends end anfang
Code:
Wie bekomme ich den Code unter NASM zum Laufen?
E:\Programmierung\ASM\NASM\nasm-0.98.35-win32>nasm
test.asm:1: error: parser: instruction expected test.asm:6: error: symbol `daten' redefined test.asm:6: error: parser: instruction expected test.asm:8: error: parser: instruction expected test.asm:10: error: parser: instruction expected test.asm:14: error: comma or end of line expected test.asm:20: error: symbol `code' redefined test.asm:20: error: parser: instruction expected test.asm:22: error: parser: instruction expected |
Re: ASM mit NASM Problem
So habe es etwas verbessern können:
Code:
Aber immer noch:
daten segment
meldung db "Assembler ist geil." db "$" ends code mov ax,daten mov ds,ax mov dx,offset meldung mov ah,9 int 21h mov ah,4ch int 21h ends
Code:
test.asm:1: error: parser: instruction expect
test.asm:11: error: comma or end of line expe test.asm:16: error: symbol `ends' redefined |
Re: ASM mit NASM Problem
|
Re: ASM mit NASM Problem
Ah, danke für den Link. Ich habe 32 Bit NASM, könnte es daran liefen? Der Code ist wohl für 16 Bit.
|
Re: ASM mit NASM Problem
Moin Luckie,
soweit hatte ich den Code schon, dass an anderer Stelle gemeckert wurde:
Code:
Ich hatte dann allerdings im Moment keine weitere Lust tiefer einzusteigen, um's zum Laufen zu bringen.
anfang: mov ax, seg meldung
mov ds,ax mov dx,meldung mov ah,9 int 21h mov ah, 4ch int 21h ret meldung db "Assembler ist geil." db "$" Der 16-Bit Nasm bringt übrigens den gleichen Fehler. Die mögen offensichtlich die Segmente nicht :? Da der int 21h ja der DOS Aufruf schlechthin ist, wäre ich wirklich mal neugierig ob das unter Windows überhaupt lauffähig wäre ;-) Ich muss direkt mal wieder meinen guten alten TASM (2.0) rauskramen. Hast Du mal im Borland Museum nachgesehen, ob's den da gibt? |
Re: ASM mit NASM Problem
Ich habe mir jetzt mal TASM 5.0 geliehen.
Damit kopiliert er das:
Code:
tasm32 tes.asm test.exe
daten segment
meldung db "Assembler ist geil." 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 Aber er gibt nichts aus. |
Re: ASM mit NASM Problem
'mov ax, daten' dürfte das Problem sein, hab mal schnell mit TASM5 getestet...
HelloExe.bat
Code:
HelloCom.bat
;@goto build
data segment Hello db "Hello, World!", 0Dh, 0Ah, "$" data ends code segment Start: mov ax, seg Hello mov ds, ax mov dx, offset Hello mov ah, 09h int 21h mov ax, 4C00h int 21h code ends end Start :build @echo off set PATH=P:\BORLAND\TASM5\BIN;%PATH% tasm /m3 /ml /q /t /w2 /z HelloExe.bat, HelloExe.obj tlink /c /k /Tde /x HelloExe.obj, Hello.exe del HelloExe.obj Hello.exe pause
Code:
;@goto build
code segment org 100h Start: mov ah, 09h lea dx, Hello int 21h mov ax, 4C00h int 21h Hello: db "Hello, World!", 0Dh, 0Ah, "$" code ends end Start :build @echo off set PATH=P:\BORLAND\TASM5\BIN;%PATH% tasm /m3 /ml /q /t /w2 /z HelloCom.bat, HelloCom.obj tlink /c /t /x HelloCom.obj, Hello.com del HelloCom.obj Hello.com pause |
Re: ASM mit NASM Problem
HA! Das geht. Jetzt weiß ich schon mal, wie so was generell aufgebaut sein muß. Dank dir. Auf den Meister ist doch immer wieder verlass. :P
|
Re: ASM mit NASM Problem
statt LEA DX,Message musst du LDS DX,Message nehmen.
Gruß Hagen |
Re: ASM mit NASM Problem
Den zweiten hatte ich gar nicht ausprobiert, weil mich com-Dateien nicht weiter interessieren werden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz