strin ausgeben



  • Hallo ich wollte einen Strin ausgeben die funzt auch soweit ziemlich gut, nur habe ich davor immer noch irgendwelche Wahllosen sonderzeichen. Wäre cool wenn jemand helfen könnte.

    .model tiny                 
     .code                       
     .stack 100h                   
    
     START:                      
      mov ah, 09h                
      mov dx, offset string      
      INT 21h                    
    
      mov ah,4ch                
      INT 21h  
    
     string db 'text',10d,13d,'$' 
    
     END START
    


  • Hi.

    Versuch' mal

    START:                      
      mov ax, cs
      mov ds, ax
    
      mov ah, 09h                
      mov dx, offset string      
      INT 21h
    

    , um ds auf das Codesegment zu setzen.



  • Hi vielen dank erstmal, Funktioniert super
    was ich nur nicht so recht verstehe ist was folgende Zeilen bedeuten.

    mov ax, cs
    mov ds, ax
    


  • Im Speichermodel "tiny", welches du verwendest, liegen Daten, Stack und Code in einem Segment.
    In genannten 2 Zeilen wird der Inhalt des Segmentregisters CS (CodeSegment) zuerst in das Register AX und von AX dann in das Segmentregister DS kopiert.
    Damit zeigt DS dann also auf das selbe Speichersegment wie CS und beim Funktionsaufruf von int 21h kann so mit DS:DX der Text korrekt adressiert werden.



  • Ahh, super erklärung Danke.


Anmelden zum Antworten