mofa84
2005-06-27, 15:53:34
Wo ist da der Fehler? Ich erstelle ein neues Projekt, dann hab ich automatisch diesen Code:
; A 16-bit DOS HelloWorld program originally by RedOx. Produces a small model .EXE executable.
; To assemble and link from within WinAsm Studio, you must have a special 16-bit linker,
; such as the one in the archive at this URL- http://win32assembly.online.fr/files/Lnk563.exe
; Run the archive to unpack Link.exe, rename the Link.exe file to Link16.exe and copy it
; into the \masm32\bin folder.
.MODEL small
.stack 100h
.data
msg db "This is a 16-bit DOS .EXE executable",13,10,"Hello, World!",13,10,"$"; The string must end with a $
.code
start:
mov ax,@data ; Get the address of the data segment
mov ds,ax ; Set the DS segment
mov dx,offset msg ; Get the address of our message in the DX
mov ah,9 ; Function 09h in AH means "WRITE STRING TO STANDARD OUTPUT"
int 21h ; Call the DOS interrupt (DOS function call)
mov ax,0C07h ; Function 0Ch = "FLUSH BUFFER AND READ STANDARD INPUT"
int 21h ; Waits for a key to be pressed.
mov ax, 4C00h ; the exit fuction [4C+no error (00)]
int 21h ; call DOS interrupt 21h
end start
Wenn ich dann "Go All" mache, also compilieren und linken will bekomm ich diese Fehlermeldung (Pfade müssten stimmen):
F:\Assembler\WASM\masm32\bin\ML /c /I"F:\Assembler\WASM\masm32\Include" "F:\Assembler\32\DosExe.asm"
Make error: Cannot create process.
Make finished. 1 error(s) occured.Das was oben steht mit dem 16-Bit-Linker hab ich auch schon versucht. Kann das an XP liegen? Ich hab so das Gefühl dass wenn ich eine bereits fertige DOS-EXE laufen lasse das Ganze verdammt langsam ist (NTVDM).
; A 16-bit DOS HelloWorld program originally by RedOx. Produces a small model .EXE executable.
; To assemble and link from within WinAsm Studio, you must have a special 16-bit linker,
; such as the one in the archive at this URL- http://win32assembly.online.fr/files/Lnk563.exe
; Run the archive to unpack Link.exe, rename the Link.exe file to Link16.exe and copy it
; into the \masm32\bin folder.
.MODEL small
.stack 100h
.data
msg db "This is a 16-bit DOS .EXE executable",13,10,"Hello, World!",13,10,"$"; The string must end with a $
.code
start:
mov ax,@data ; Get the address of the data segment
mov ds,ax ; Set the DS segment
mov dx,offset msg ; Get the address of our message in the DX
mov ah,9 ; Function 09h in AH means "WRITE STRING TO STANDARD OUTPUT"
int 21h ; Call the DOS interrupt (DOS function call)
mov ax,0C07h ; Function 0Ch = "FLUSH BUFFER AND READ STANDARD INPUT"
int 21h ; Waits for a key to be pressed.
mov ax, 4C00h ; the exit fuction [4C+no error (00)]
int 21h ; call DOS interrupt 21h
end start
Wenn ich dann "Go All" mache, also compilieren und linken will bekomm ich diese Fehlermeldung (Pfade müssten stimmen):
F:\Assembler\WASM\masm32\bin\ML /c /I"F:\Assembler\WASM\masm32\Include" "F:\Assembler\32\DosExe.asm"
Make error: Cannot create process.
Make finished. 1 error(s) occured.Das was oben steht mit dem 16-Bit-Linker hab ich auch schon versucht. Kann das an XP liegen? Ich hab so das Gefühl dass wenn ich eine bereits fertige DOS-EXE laufen lasse das Ganze verdammt langsam ist (NTVDM).