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
p386dataseg
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 Starthth