Hallo, ich versuche unter Win-XP bzw. Vista ein winziges Assemberprog. mit MASM32 zum Laufen zu bringen. Dieses verabschiedet sich aber beim int 21h. Die Trace-Infos kommen noch raus, dann ist aber Schluß: Kann mir jmd. sagen, was ich da falsch mache ? ------------------------------------------ DL = 41 (EXAMP1 - Kopie (2).asm, 22) ---- Test string --- (EXAMP1 - Kopie (2).asm, 23) ---------------------------------------- Programmcode .386 .model flat, stdcall .STACK 100h option casemap :none ; case sensitive include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\masm32.inc include \masm32\include\debug.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\masm32.lib includelib \masm32\lib\debug.lib ;DBGWIN_DEBUG_ON = 1 ;turn it off if you don't want to include debug info into the program ;DBGWIN_EXT_INFO = 1 ;turn it off if you don't want to include extra debug info into the program .stack .data .code org 100h BEGIN: mov DL,'A' PrintHex DL PrintText "---- Test string ---" PrintLine int 21h end BEGIN
Joe, dem int 21h müsste noch mitgeteilt werden, was er tun soll. In deinem Fall wahrscheinlich das Programm beenden, also z.B. MOV AX,4C00h ; beendet Programm mit Endecode 0. INT 21h Ciao, Yagan
Kann es sein dass du versuchst, DOS-Code als Win32 programm zu assemblieren?
ja, stimmt, heisst das, dass man Ass Programme nur unter Dr.DOS o.ä. ausführen kann ?
naja - windows xp und vista untersagen den direkten hardwarezugriff ;) von daher würde ich sagen, das du so ohne weiteres keine dos progs ohne anpassung übersetzten kannst!
>ja, stimmt, heisst das, dass man Ass Programme nur unter Dr.DOS >o.ä. ausführen kann ? Nein, das nicht, aber du scheinst ein Win32 Programm zu erzeugen, und diese können z.B. int 21h nicht aufrufen. Du musst wirklich ein DOS-Programm erzeugen, das darf dann gewisse Dinge schon tun (z.B. File I/O über die DOS-Funktionen). Wie das mit MASM geht weiss ich jetzt auch nicht mehr so genau.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.