Bildschirmausgabe einer Zahl in Assembler?
-
Hallo!
Wie kann man in Assembler eine Zahl die beispielsweise im DX-Register liegt auf dem Bildschirm ausgeben? Ich möchte eine solche Zahl z.B. B10F als Dezimalzahl auf dem Bildschirm ausgeben. Wir haben zwei vorgefertigte Makros: Display_String und Display_Char.
Könnt ihr mir helfen?
-
so ähnlich, wie man das handschriftlich auch macht, und dann display char.
-
Ich gehe jetzt mal von einem PC aus. Man schreibt die Information in den Video RAM. Wo dieser sich befindet, hängt von der Video-Darstellungsform ab, die man im BIOS wählt.
Beispiel: Video RAM bei 0xB8000
http://www.henkessoft.de/OS_Dev/OS_Dev1.htm#mozTocId483279[BITS 32] start: mov [0x000b8000], byte 'T' mov [0x000b8002], byte 'e' mov [0x000b8004], byte 's' mov [0x000b8006], byte 't' mov [0x000b8008], byte ' '
Wenn man den DOS Int 0x21 zur Verfügung hat:
AH = 09h : DISPLAY STRING
Display string of characters found in memory starting at the address given by [DS:DX] and ending with a " string); the "$" character is not displayed.
http://www.henkessoft.de/Assembler/Assembler-Dateien/image002.jpgIm eigenen OS kann man den Videomode entsprechend wählen.
Siehe z.B. PrettyOS: http://www.c-plusplus.net/forum/270502
-
Da du anscheinend bereits Funktionen zur Ausgabe von chars zur Verfuegung hast, kannst du Erhards Erlaeuterungen wohl am ehesten zunaechst als Hintergrundinfos betrachten.
Ich nehme an, du willst wissen, wie man eine Festkommazahl in eine lesbare Zeichenfolge umwandelt, die dann ausgegeben werden kann?
Dazu kann dir evtl. folgender Beitrag und das restliche Thema weiterhelfen:
http://www.c-plusplus.net/forum/p1904493#1904493