DS:DX DX nach DS oder DS nach DX ??



  • Hallo eine Frage ich hab in einer Doku folgendes gesehen:

    http://www.ctyme.com/intr/rb-2563.htm

    DOS 1+ - BUFFERED INPUT
    AH = 0Ah
    DS:DX -> buffer (see #01344)

    Return:
    Buffer filled with user input

    Notes: C/Break are checked, and INT 23 is called if either detected. Reads from standard input, which may be redirected under DOS 2+. If the maximum buffer size (see #01344) is set to 00h, this call returns immediately without reading any input

    See Also: AH=0Ch - INT 2F/AX=4810h

    Format of DOS input buffer:

    Offset Size Description (Table 01344)
    00h BYTE maximum characters buffer can hold
    01h BYTE (call) number of chars from last input which may be recalled
    (ret) number of characters actually read, excluding CR
    02h N BYTEs actual characters read, including the final carriage return

    Category: DOS Kernel - Int 21h - D

    Wird hier jetzt DS in DX geschoben und DX in den Buffer oder umgekehrt ?
    DS:DX -> buffer

    Weil z.b.
    add var,2 <-- Hier schiebt man ja die 2 in var und nicht var in 2



  • dsdx schrieb:

    Wird hier jetzt DS in DX geschoben und DX in den Buffer oder umgekehrt ?
    DS:DX -> buffer

    Weder noch. Die beschriebene Funktion erwartet in dem Registerpaar DS und DX einen Zeiger auf einen Puffer im RAM mit der angegebenen Struktur.
    Stichwort "Adressierung im Real Mode". In DS gehoert der Segment- und in DX der Offset-Teil der Adresse des Puffers.

    dsdx schrieb:

    Weil z.b.
    add var,2 <-- Hier schiebt man ja die 2 in var und nicht var in 2

    Da wird die 2 auf einen Wert im RAM addiert. Hat aber nicht viel mit dem Fall oben zu tun.


Anmelden zum Antworten