mikrocontroller.net

Forum: PC-Programmierung MASM32-Testprogramm


Autor: Joe (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Yagan Ζ. Dongobar (yagan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann es sein dass du versuchst, DOS-Code als Win32 programm zu 
assemblieren?

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, stimmt, heisst das, dass man Ass Programme nur unter Dr.DOS
o.ä. ausführen kann ?

Autor: dr HW (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.