Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [ASM] Einzelnes Zeichen ausgeben - Aber wie? (https://www.delphipraxis.net/87306-%5Basm%5D-einzelnes-zeichen-ausgeben-aber-wie.html)

Muetze1 26. Feb 2007 20:29

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von sirius
Und hast du das im Real Mode gestartet?

Das ist Schnuppe, wenn es eine COM Datei ist. Schliesslich wird eine COM nur im Realmode in einem Segment geladen & ausgeführt.

Code:
org 100h
start:
   push cs
   pop ds
   mov dx, offset hello_world
   mov ah, 09h
   int 21h
   mov ah, 4Ch
   int 21h
   
hello_world db 'hello, world', 13, 10, '$'
Siehe auch INT 21h, FUNC 09h

sirius 26. Feb 2007 20:37

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von Muetze1
Das ist Schnuppe, wenn es eine COM Datei ist. Schliesslich wird eine COM nur im Realmode in einem Segment geladen & ausgeführt.

Wie? Und dann greift man einfach mal so auf den Interrupt zu?

Muetze1 26. Feb 2007 20:49

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von sirius
Zitat:

Zitat von Muetze1
Das ist Schnuppe, wenn es eine COM Datei ist. Schliesslich wird eine COM nur im Realmode in einem Segment geladen & ausgeführt.

Wie? Und dann greift man einfach mal so auf den Interrupt zu?

Ja, genau. Schliesslich werden COM's immer in einer Real Mode kompatiblen Umgebung ausgeführt. Entweder reines DOS (oder DOS mit XMS im V86 Modus) oder unter Windows, dann entweder im V86 Modus oder in einer NT VDM (Virtual DOS Machine), welche auch wieder einen Real Mode den Dateien simuliert und die INT Aufrufe entsprechend umlegt bzw. simuliert.

Ich weiss auch nicht, was die provokative Frage soll, schliesslich sind im RealMode die meisten unteren Interrupts Service Provider mit genügend Funktionen. Wenn man im Real Mode ist, hat man die Chance einen String entweder über das BIOS (INT 10h), DOS (INT 21h, INT 29h) oder anderen Systemen aus. Oder willst du mit der Frage behaupten, dass du alles direkt in den Video RAM geschrieben hattest im Real Mode?

sirius 26. Feb 2007 20:54

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Ich hatte dabei jetzt gar nicht in die Ausgabe gedacht, sondern eher an die eingabe. Aber gut, das wird ja auch emuliert und äh ja interessant. Habe mich noch nie mit COM unter Windows beschäftigt. Aber ich sehe jetzt auch keine Notwendigkeit.

Muetze1 26. Feb 2007 22:06

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von sirius
Habe mich noch nie mit COM unter Windows beschäftigt.

Ich will in dem Zusammenhang für die Nachwelt darauf hinweisen, dass hier von einer Dateiendung bzw. Format geredet wird. Also eine executable nur nicht mit .EXE sondern mit einer .COM Endung. Der Erklärungshint der dp.net nennt diese Möglichkeit nicht und wir reden hier nicht über das Component Object Model und auch nicht über die TLD.

COM Dateien sind eins der einfachsten ausführbaren Dateien auf einem DOS System bzw. maximal Windows 2003 Systems. Ab Vista wird es keine NT VDM mehr geben und von daher werden damit auch die .COM Dateien aussterben.

sirius 27. Feb 2007 06:58

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Ohja, macnhmal verwirren die kleinen Hint-Windows. Und das ist nicht nur bei Command-Files so. Aber ich denke, der Kontext hier würde auch aufklären :wink:

Mavarik 27. Feb 2007 09:58

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von sirius
Wie? Und dann greift man einfach mal so auf den Interrupt zu?

Naja, da auch unter Windows immer noch BP7/TP7 Programme ausgeführt werden können...Ü brings funktionieren nicht nur die INT's, sondern auch direktes schreiben in dem Bildschirm(DOS) Speicher...

Frank :coder:

So war das früher ohne Klick&Compile IDE... (Oh man bin ich alt :pale: )

Muetze1 27. Feb 2007 10:32

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von Mavarik
Naja, da auch unter Windows immer noch BP7/TP7 Programme ausgeführt werden können...Ü brings funktionieren nicht nur die INT's, sondern auch direktes schreiben in dem Bildschirm(DOS) Speicher...

Was aber nicht mehr "direkt" ist. Die NTVDM handelt dies und setzt es um.

Mavarik 27. Feb 2007 11:58

Re: [ASM] Einzelnes Zeichen ausgeben - Aber wie?
 
Zitat:

Zitat von Muetze1
Was aber nicht mehr "direkt" ist. Die NTVDM handelt dies und setzt es um.

Logisch... Da an der entsprechenden Adresse kein V-Ram ist...

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.
Seite 2 von 2     12   

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