int 21h unter Windows

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Antworten
Flatty
Newbie
Beiträge: 1
Registriert: Dienstag 20. Februar 2007, 17:59

int 21h unter Windows

Beitrag von Flatty » Dienstag 20. Februar 2007, 18:15

Hallo,

ich habe folgendes Problem. Ich möchte einfach ein Zeichen per Interrupt 21h ausgeben. Ich habe mit folgendem inline Assembler-Code versucht ein einfaches A auszugeben:

__asm
{
mov ah, 0x02;
mov dl, 65;
int 0x21;
}

Es wird der Compiler des Visual Studio 6.0 verwendet. Rufe ich das Programm dann auf, gibt er mir zwar das Zeichen auf dem Bildschirm aus, aber er stürzt danach mit einer Access-Violation ab.

Kann ich diesen Interrupt nicht verwenden? Welche Alternativen habe ich, ohne großen Overhead (also sehr performant) ein Zeichen auf die Console zu schreiben?

lg, Flatty

Benutzeravatar
crack
Administrator
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf
Kontaktdaten:

Re: int 21h unter Windows

Beitrag von crack » Mittwoch 21. Februar 2007, 17:25

Flatty hat geschrieben:Hallo,

ich habe folgendes Problem. Ich möchte einfach ein Zeichen per Interrupt 21h ausgeben. Ich habe mit folgendem inline Assembler-Code versucht ein einfaches A auszugeben:

__asm
{
mov ah, 0x02;
mov dl, 65;
int 0x21;
}

Es wird der Compiler des Visual Studio 6.0 verwendet. Rufe ich das Programm dann auf, gibt er mir zwar das Zeichen auf dem Bildschirm aus, aber er stürzt danach mit einer Access-Violation ab.

Kann ich diesen Interrupt nicht verwenden? Welche Alternativen habe ich, ohne großen Overhead (also sehr performant) ein Zeichen auf die Console zu schreiben?

lg, Flatty
Der MASM32 kennt dafür die Funktion oder das Macro 'stdout', liess mal in der MASM32.hlp nach ...
Ups, ich les grad 'Visual Studio 6.0' da müsste es die Funktion 'stdout' sowieso geben ...
mit freundlichen grüssen,
with best regards,

crack

Antworten