| Zeile 2: | Zeile 2: | ||
== Realmode == | == Realmode == | ||
| − | /// | + | Im Realmode macht das BIOS diese Arbeit. |
| + | Um ein Zeichen zu schreiben reicht folgender ASM-Code (für NASM): | ||
| + | <asm> | ||
| + | sti ;Falls Interrupts aus sind, schalte Interrupts an | ||
| + | mov ah, 0x0E ;Wir wollen schreiben | ||
| + | mov bh, 0x00 ;Auf den Bildschirm | ||
| + | mov al, "T" ;Das zu schreibende Zeichen | ||
| + | int 0x10 ;Ausführen | ||
| + | </asm> | ||
| + | Um einen ganzen Text zu schreiben gibt es folgenden Trick: | ||
| + | <asm> | ||
| + | Schreibe: ;Hier fängt die Funktion Schreibe an | ||
| + | sti ;Wenn Interrupts aus sind, dann schalte sie an | ||
| + | lodsb ;Zeichen laden nach al | ||
| + | cmp al, 0x00 ;Wenn 0-Byte ... | ||
| + | je Schreibeende;... dann beende Schreibefunktion | ||
| + | ;Wenn nicht, dann | ||
| + | mov ah, 0x0E ;Wir wollen schreiben | ||
| + | mov bh, 0x00 ;Auf den Bildschirm | ||
| + | int 0x10 ;Jetzt | ||
| + | jmp Schreibe ;Mache nächstes Zeichen | ||
| + | Schreibeende: ;Bei Stringende wird hierher gesprungen: | ||
| + | ret ;Die Funktion beenden | ||
| + | </asm> | ||
| + | |||
| + | Dann kann man einfach einen Text schreiben: | ||
| + | <asm> | ||
| + | mov si, Text ;Den Text unten | ||
| + | call Schreibe ;schreiben | ||
| + | |||
| + | ;Der Text: | ||
| + | Text db "Text im Realmode schreiben geht!",13,10,0 | ||
| + | ; ,13,10 macht eine Neue Zeile | ||
| + | ; ,0 sagt das es hier aufhört (sonst würde zuviel geschrieben werden) | ||
| + | </asm> | ||
== Protected Mode == | == Protected Mode == | ||