Hallo OS-Coder,
hab ein kleines Problem:
Ich will eine in AX stehende Zahl ausgeben. Das Prinzip kenn ich, aber bei der Ausgabe erscheint, wenn z.B. AX mit dem Wert 65000 initialisiert worden ist, nur die 6 auf dem Bildschirm.
Findet ihr den Fehler ?
IntToStr:
push dx
push ax
call Stellen
xor cx,cx
xor dx,dx
mov cx,10
IntToStrStart:
div cx ;Zahl durch 10 teilen
add dx,30h ;in ASCII konvertieren
mov [String+bx],dx ;in Puffer schreiben
dec bx ;nchstes Pufferelement auswhlen
mov dx,0 ;Rest wieder loeschen
cmp ax,0 ;ganzzahliger Anteil 0 ?
je IntToStrEnde ;ja->Ende
jmp IntToStrStart
IntToStrEnde:
pop ax
pop dx
retn
Die Funktion "Stellen" liefert die Anzahl der Stellen einer Zahl über BX zurück. Also bei 60000 ist BX dann 4. (von 0 bis 4 = 5 Stellen).
String ist ein aus 6 Elementen bestehendes Array, das mit 0 initialisiert ist.
Danke für eure Hilfe