Maschinensprache i8086/ BWS

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Theorie:  EinleitungMaschinenspracheAssemblerZahlensystemeRAM-AdressenBWSDebugCPU-RegisterEinfache BefehleStringbefehleInterruptsI/O-Ports
Versuch:  BWS1BWS2Hallo WeltBootsektorMBR
Nützlich: BefehlslistePAUSEFilter
Analyse:  Bootloader

Die Grafikkarte und der Bildwiederholspeicher[Bearbeiten]

Die Grafikkarte stellt die Schnittstelle des Computers zum Bildschirm dar. Die Elektronik der Grafikkarte steuert den Elektronenstrahl, der durch Beschuss der Fluoreszenzschicht ein leuchtendes Bild erzeugt.

Um ein flimmerfreies Bild zu erhalten, muss der Elektronenstrahl des Monitors jeden Bildpunkt etwa 85 mal pro Sekunde zeichnen. Die Information über Helligkeit und Farbe jedes Pixels (Bildpunktes) ist im RAM der Grafikkarte im sogenannten Bildwiederholspeicher (BWS) hinterlegt.

Die notwendige Größe des BWS hängt von der gewählten Auflösung und Farbtiefe ab. Bei einer Auflösung von 1024 x 768 werden 786 432 Pixel dargestellt. Bei True-Color (24 Bit = 8 Bit pro Grundfarbe = 3 Byte) werden 2 359 296 Byte für die Darstellung benötigt, aufgerundet auf die nächste Zweierpotenz also 4 MByte BWS. Bei 1600 x 1200 Bildpunkten x 32 Bit benötigt man 8 MByte BWS-RAM. Ihre Grafikkarte hat viel mehr RAM? Der restliche RAM wird bei 3D Darstellungen als Arbeitsspeicher für den Grafikprozessor verwendet.

Für jeden Bildschirmmodus besteht zwischen jedem Bit im BWS und jedem Bildpunkt eine eineindeutige Zuordnung. Während der Elektronenstrahl über den Bildschirm huscht, liest eine Elektronik, deren Kern ein "RAM Digital Analog Converter" (RAMDAC) ist, die digitale Farbinformation für jeden Bildpunkt aus dem BWS und wandelt diese in drei analoge Helligkeitssignale um, für jede der drei Grundfarben.

Außer den Grafik-Modi gibt es noch einige Text-Modi. Jeder PC startet im Textmodus (Modus Nr. 3) mit 80 x 25 Zeichen, erst später schaltet Windows in einen Grafikmodus. Textmodus bedeutet, dass der Bildschirm in Rechtecke von z.B. 8 x 14 Bildpunkte aufgeteilt wird. In jedem Rechteck hat ein Zeichen Platz. Da im Textmodus nur 16 Farben (4 Bit) möglich sind, bräuchte man eigentlich 8 x 14 x 4 Bit = 448 Bit = 56 Byte RAM für jedes Viereck. Durch einen Elektronikbaustein mit dem Namen "Zeichengenerator" genügen jedoch statt 56 Byte ganze 2 Byte: 1 Byte für das Zeichen, 1 Byte für die Farbinformation (Zeichen und Hintergrund). Dadurch braucht man für 80 x 25 Zeichen x 2 Byte nur 4000 Byte BWS!

    12345678 12345678 12345678
 1 +---------------------------	
 2 ¦xxxxx   ¦ xxxx   ¦  xx    ¦	Hier sind beispielsweise 
 3 ¦x    x  ¦x    x  ¦ x x    ¦	die Zeichen "PC1" dargestellt.
 4 ¦x    x  ¦x       ¦x  x    ¦	Der Zeichengenerator hat für
 5 ¦x    x  ¦x       ¦   x    ¦	jedes der 256 möglichen Zeichen
 6 ¦xxxxx   ¦x       ¦   x    ¦	eine Beschreibung, welche Pixel
 7 ¦x       ¦x       ¦   x    ¦	leuchten müssen und welche nicht.
 8 ¦x       ¦x       ¦   x    ¦	Bei vielen (allen?) Grafikkarten
 9 ¦x       ¦x    x  ¦   x    ¦	kann man einen anderen Zeichen-
10 ¦x       ¦ xxxx   ¦   x    ¦	satz laden, was einem Wechsel
11 ¦        ¦        ¦        ¦	der Schriftart entspricht.
12 ¦        ¦        ¦        ¦
13 ¦        ¦        ¦        ¦
14 ¦        ¦        ¦        ¦
 1 +--------+--------+--------+

Die Zeichen des Zeichensatzes sind durchnummeriert. Ein Code namens „American Standard Code for Information Interchange“ (ASCII) legt fest, dass z. B. der Buchstabe P dem ASCII-Code 80 (= 50hex) entspricht.


Das Farbattributbyte im Bildwiederholspeicher[Bearbeiten]

Bedeutung der Bits[Bearbeiten]

Bit 7 Blinken
Bit 6 Hintergrund Rot
Bit 5 Hintergrund Grün
Bit 4 Hintergrund Blau
Bit 3 Intensität
Bit 2 Zeichen Rot
Bit 1 Zeichen Grün
Bit 0 Zeichen Blau

Hintergrundfarben[Bearbeiten]

Hintergrundfarben
Hex Rot Grün Blau resultierende Farbe
  Bit 6 Bit 5 Bit 4 Hintergrund
0 0 0 0 schwarz
1 0 0 1 blau
2 0 1 0 grün
3 0 1 1 cyan
4 1 0 0 rot
5 1 0 1 violett
6 1 1 0 braun
7 1 1 1 weiß

Vordergrundfarben (Zeichenfarben)[Bearbeiten]

Vordergrund
Hex Intensiv Rot Grün Blau resultierende Farbe
  Bit 3 Bit 2 Bit 1 Bit 0 Vordergrund
0 0 0 0 0 schwarz
1 0 0 0 1 blau
2 0 0 1 0 grün
3 0 0 1 1 cyan
4 0 1 0 0 rot
5 0 1 0 1 violett
6 0 1 1 0 braun
7 0 1 1 1 weiß
8 1 0 0 0 grau
9 1 0 0 1 hellblau
A 1 0 1 0 hellgrün
B 1 0 1 1 hellcyan
C 1 1 0 0 hellrot
D 1 1 0 1 hellviolett
E 1 1 1 0 gelb
F 1 1 1 1 hellweiß

Beispiele[Bearbeiten]

Zeichen        Hintergr.
07 Weiss       Schwarz
1F Hellweiss   Blau
CE Gelb blink. Rot
4E Gelb        Rot
74 Rot         Weiss
2A Hellgrün    Grün