DOS Debug



  • Hallo ich wollte gerade mal mit dem DOS Debugger etwas rumexperimentieren.
    ( Sonst benutze ich immer TASM für DOS Anwendungen )

    Ich hab mal eine einfach Text Ausgabe probiert.

    Aber mein String wird nicht richtig ausgeben.
    Solche Ausgabe bekommt man doch eigentlich nur wenn man den nicht Nullterminiert.

    Was ist hier dran falsch ?

    -a
    155C:0100 db "ok$"
    155C:0103 mov dx,0100
    155C:0106 mov ah,9
    155C:0108 int 21
    155C:010A mov ah,4c
    155C:010C int 21
    155C:010E
    -g
    N☺Ƕ¶ ↑ \§        ♣               ═!╦
                                                        ok
    


  • wenn das proggi an stelle 100 beginnt, interpretiert das programm den hexcode von "ok$" also 6f6b24 etwas anders als gewünscht.

    wenn du das programm von adresse 103 startest, dann sollte es normal laufen.
    und um das programm zu beenden, kannst du in diesem falle auch den int 20 benutzen:
    ...mov ah,09
    int 21
    int 20

    du könntest auch den datenbereich woanders hinverfrachten, oder überspringen, mit einem jump.



  • Ty so hat es funktioniert

    -a
    155C:0100 db "ok$"
    155C:0103 jmp 0108
    155C:0105 nop
    155C:0106 nop
    155C:0107 nop
    155C:0108 mov dx,0100
    155C:010B mov ah,9
    155C:010D int 21
    155C:010F int 20
    155C:0111
    -g
    ok
    Programm normal beendet
    


  • Ach noch was^^

    Wie meinst du das mit dem "Datenbereich" verfrachten ?



  • dos_dbg schrieb:

    Ach noch was^^

    Wie meinst du das mit dem "Datenbereich" verfrachten ?

    e 200 "asm macht spaß",24

    der neue code oben ist immer noch gefährlich, besser wäre vielleicht:

    100 jmp 106
    102 db 41,42,42,24
    106 machmaweiter
    ...
    

Anmelden zum Antworten