| Zeile 66: | Zeile 66: | ||
===== Erläuterung ===== | ===== Erläuterung ===== | ||
| − | Mit der 1. Zeile wird ein Pointer auf den Textspeicher erzeugt. Der Dateityp ist uint16_t, also 2 Byte, damit wir das Zeichen und das Attributebyte gleichzeitig schreiben können (geht einfach schneller). Nun wird die Adresse ausgerechnet | + | Mit der 1. Zeile wird ein Pointer auf den Textspeicher erzeugt. Der Dateityp ist uint16_t, also 2 Byte, damit wir das Zeichen und das Attributebyte gleichzeitig schreiben können (geht einfach schneller). Nun wird mit der obengenannten Formel die Adresse ausgerechnet. Würde man uint8_t benutzen, müsste man dann mit 2 multiplizieren, denn jedes Zeichen benutzt 2 Byte. Man setzt das Zeichen, indem man das Attribute-Byte auf 16 Bit erweitern, dann eine Linksverschiebung von 8 Bit vornimmt und per logischem Oder mit dem Zeichenbyte verknüpft. |
| − | Achtung: Das Attributebyte kommt zwar immer nach dem Zeichenbyte, aber | + | Achtung: Das Attributebyte kommt zwar immer nach dem Zeichenbyte, aber x86 ist ein [http://de.wikipedia.org/wiki/Byte-Reihenfolge Little-Endian]-System. |
Nochmal eine Veranschaulichung der Oder-Verknüpfung: | Nochmal eine Veranschaulichung der Oder-Verknüpfung: | ||