Maschinensprache i8086/ BWS
Theorie:
Einleitung – Maschinensprache –
Assembler – Zahlensysteme –
RAM-Adressen – BWS – Debug –
CPU-Register – Einfache Befehle – Stringbefehle – Interrupts –
I/O-Ports
Versuch:
BWS1 – BWS2 –
Hallo Welt – Bootsektor – MBR
Nützlich:
Befehlsliste – PAUSE – Filter
Analyse:
Bootloader
Die Grafikkarte und der Bildwiederholspeicher
BearbeitenDie 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
BearbeitenBedeutung der Bits
BearbeitenBit 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
BearbeitenHex | 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)
BearbeitenHex | 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
BearbeitenZeichen Hintergr. 07 Weiss Schwarz 1F Hellweiss Blau CE Gelb blink. Rot 4E Gelb Rot 74 Rot Weiss 2A Hellgrün Grün