Kurze Assemblerfrage
-
Hi, ich bin noch einigermaßen neu auf dem Assemblergebiet.
Ich hab mir mal so als erstes Programm nen simplen Taschenrecher geschrieben der im Moment nur addiern kann und ich bin fast fertig wenn da nicht dieses Problem wäre.Also ich hab die Summe der beiden Werte einer Variable (Word) gespeichert. Aber ich hab keine Ahnung wie ich das nun auf den Bildschirm bringen kann. Ich habs mit
mov ah, 0Eh int 10h
versucht, aber da da nur ein Byte ausgegeben werden kann weiss ich nicht weiter.
Hättet ihr vll ein paar Vorschläge? ( müssen keine kompletten Lösungen sein, Hinweise würden auch schon reichen)
Danke :
-
http://www.c-plusplus.net/forum/viewtopic-var-t-is-238084.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-236735.html... So weit bin ich aber mit keinem der beiden Faeden zufrieden genug, dass sie reif fuer die FAQ waeren.
-
versteh ich dich richtig?
Du weist nicht, wie du mehrere Bytes ausgeben kannst?Wenn du ne Zahl hast, musst du die erstmal in nen String umwandeln.
Z.b. wenn die Zahl 123 ist, dividierst du durch 10 und addierst auf den Divisionsrest (3) 48.
Das Ergebnis (51) schreibst du dann ins AL Register und rufst deinen Interrupt 10h auf (mit AH=0EH)Das ganze machst du in einer Schleife solange, bis eine Division durch 10 0 Ergibt.
;Addition -> z.b. in AX=1234 loop1: MOV CX, 10 DIV CX ; AX=Ergebnis, DX=Rest ADD DX, 48 PUSH AX PUSH CX MOV AH, 0Eh MOV AL, DL INT 10h POP CX POP AX CMP AX, 0 ;es gibt nichts mehr zum teilen, zahl komplett ausgegeben -> beenden JE loop1_end jmp loop1 loop1_end: ;...
Hab ihn ned getestet, muss aber funktionieren^^
-
ok danke euch beiden^^