Wo befindet sich DS:[0080h] ?

06/01/2015 - 22:55 von Willi M | Report spam
Hallo,

ich bin noch recht frisch mit Assembler. In meinem Buch (ISBN
978-3-8266-1469-9), welches ich zum lernen benutze, ist ein zusàtzlicher
Quellcode enthalten. Dieser wird aber nicht nàher erklàrt.

Dort wird in einem Macro "mov cl,DS:[0080h]" verwendet. Ich vermute hier,
das der Bytewert aus dem Datensegment an Offset 0080h in das CL-Register
übertragen wird. Nach .Data finde ich folgendes.

Header STRUC
Typ DW ?
Size1 DD ?
<...>
Header ENDS
Head Header <>
Filename DB 126 DUP (0)
<...>

Befinde ich mich im richtigen Segment? 0080h scheint 16bit zu sein.
Bedeutet das ich hier alle 16bit eine Adresse vorfinde oder das der
Adressraum 16bit groß sein kann und es existiert pro Byte eine Adresse.

Ich hoffe meine Frage ist nicht zu dumm und schon mal vielen Dank für
eure Hilfe. Den Quelltext kann ich leider nicht veröffentlichen, weil
dort ein Copyright vermerkt ist.

Gruß
 

Lesen sie die antworten

#1 Herbert Kleebauer
07/01/2015 - 00:11 | Warnen spam
On 06.01.2015 22:55, Willi Mühlenhàuser wrote:

Dort wird in einem Macro "mov cl,DS:[0080h]" verwendet. Ich vermute hier,
das der Bytewert aus dem Datensegment an Offset 0080h in das CL-Register
übertragen wird.



http://de.wikipedia.org/wiki/Progra...ent_Prefix

An der Adresse 0x80 im PSP steht die Lànge der Kommandozeile, ab Adresse
0x81 die eingegebene Kommandozeile selbst.

Aber vermutlich wirst du Schwierigkeiten bekommen, 16-Bit Programme
überhaupt noch ausführten zu können, unter 64 Bit Windows funktioniert
das nicht mehr.

Ähnliche fragen