Textausgabe — Änderungen 7802 → 7803

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 oben genannten Formel. Hätten wird vorhin uint8_t benutzt, müssten wir jetzt noch mit 2 multiplizieren, da ja jedes Zeichen 2 Byte benutzt. Das Setzen des Zeichens machen wir, indem wir einfach das Attribute auf 16 Bit erweitern, dann eine Linksverschiebung von 8 Bit vornehmen und per logischem Oder mit dem Zeichenbyte verknüpfen.
+
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 wir benutzen hier ein Word und arbeiten ja auf einem [http://de.wikipedia.org/wiki/Byte-Reihenfolge Little-Endian]-System.
+
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: