Zahlen auf dem Bildschirm ausgeben?
-
Hi!
WIe kann ich eine Zahl in einem Register speichern und dann auch als Zahl auf dem Bildschirm ausgeben?? Wenn ich das Register normal ausgebe, dann bekomm ich immer das zugehörige ASCII-Zeichen angezeigt.
Gruß Friggel
-
So ich hab jetzt mal herausgefunde, dass ich mit '5', z.B. ne 5 ausgeben kann. Aber die Hochkommas sind doch normal für Strings gedacht oder???
Ist das der richtige Weg um Zahlen auszugeben?
-
Du musst die Zahlendarstellung durch ASCII-Zeichen aussdruecken, also sozusagen die hoechste Stelle abschneiden und darstellen etc. Wenn du in einem Register eine einstellige Zahl hast, addierst du einfach '0' (den ASCII-Code fuer die 0) dazu. Du musst halt immer eine Stelle isoliewren und ausgeben und das solange bis du alle Stellen hast.
-
Ok, also praktisch die ASCII Codes von jeder Stelle hintereinander ausgeben. Aber dann versteh ich trotzdem nicht, wie ich dann z.B. zwei Zahlen addieren kann.
z.B. MOV AX, 5
ADD AX, 5Dann sollte halt eben 10 rauskommen. Wie kann ich das machen?????
Gruß Friggel
-
Ich verstehe deine Frage leider nicht ganz.
Der CodeMOV AX, 5 ADD AX, 5
fuehrt eine Addition von 5+5 aus.
Das Ergebnis (10) steht anschliessend in ax.
-
vielleicht hilft dir das hier weiter:
http://www.codingzone.de/index.php?i=14&s=3&id=17
-
Folgendes Programm gibt jede Zahl als Dezimalzahl aus:
DEZI PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV BX,10 MOV CX,0 DIVI: INC CX MOV DX,0 DIV BX PUSH DX CMP AX,0 JNE DIVI MOV AH,2 DIGIT:POP DX ADD DL,'0' INT 21h LOOP DIGIT POP DX POP CX POP BX POP AX RET DEZI ENDP
Ist von meinem Dozenten, ich hoffe das ist was du gesucht hast.
Code-Hacker