DOS Zahl ausgeben



  • mit welcher funktion kann ich eine zahlenfolge ausgeben, wie man strings oder einzelne zeichen ausgibt weiß ich, aber wie zum teufel gibt man eine zahlenfolge aus?



  • mit einer selbstgeschriebenen Proc 😉 Ich nehme mal an, du willst zB. einen 16Bit-Wert als Dec.-Zahl ausgeben?

    ok. Hier kommt Codebeispiel:
    IDEAL
    Model tiny
    p386

    dataseg
    TempStr db 8 dup (?)

    codeseg

    org 100h
    Start:
    mov ax,5512 ;diese Zahl soll so auf dem Bildschirm zu lesen sein...

    xor cx,cx
    mov bx,000Ah
    @@DecConvert:
    xor dx,dx
    div bx ;ausgangszahl / 10
    add dx,0030h ;Rest der Division + 30h (30h-39h sind chars 0-9)
    push dx ;auf stack ablegen... hat jetzt noch falsche Reihenfolge
    inc cx ;anzahl chars, die die Zahl hat in cx
    or ax,ax ;ist das sonstige Ergebnis der Division 0?
    jnz short @@DecConvert ;nein, es wurden noch nicht alle Ziffern der Zahl bearbeitet.
    mov di,offset TempStr
    @@SortDec:
    pop ax
    stosb ;jetzt wird die Reihenfolge der Ziffern umgedreht: die einerstelle zum Schluss.
    loop @@SortDec ;so oft wiederholen, wie Ziffern auf dem Stack abgelegt wurden...
    mov al,24h
    stosb ;"$" markiert Ende fuer Ausgabestring
    mov dx,offset TempStr
    mov ax,0900h
    int 21h ;auf Bildschirm schreiben.

    ret ;beenden
    END Start

    hth 🕶


Anmelden zum Antworten