Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Písanie do pamäte VDU v textovom režime?

Písanie priamo na VDU (Visual Display Unit) Pamäť v textovom režime je operácia nízkej úrovne, ktorá je vysoko špecifická pre systém a vo všeobecnosti odrádza v modernom programovaní. Táto metóda do značnej miery závisí od operačného systému (OS), grafickej karty a videozáznamu. Neexistuje žiadne jediné prenosné riešenie.

Tu je zrútenie toho, prečo je to ťažké a aké prístupy by ste mohli zvážiť, spolu s ich obmedzeniami:

Prečo je to ťažké a odradené:

* Abstrakčné vrstvy: Moderné operačné systémy Abstrakt priameho prístupu pamäte k hardvéru videa. Je to z dôvodov stability a bezpečnosti. Priama manipulácia s pamäťou môže váš systém ľahko zlyhať, ak sa vykoná nesprávne.

* Hardvérová závislosť: Adresa pamäte, kde sa nachádza video RAM (VRAM), sa drasticky líši v závislosti od grafickej karty a jej konfigurácie.

* mapovanie pamäte: Aj keď by ste našli adresu VRAM, musíte pochopiť, ako sa mapuje video pamäť (napr. Koľko bajtov na znak, atribúty znakov, rozlíšenie obrazovky). To je veľmi závislé od režimu videa.

* Ochranné mechanizmy: Operačné systémy často využívajú ochranu pamäte, aby sa zabránilo písaniu programov do ľubovoľných miest pamäť, vrátane VRAM.

* Moderné grafické karty: S modernými grafickými kartami a ovládačmi je priamy prístup k pamäti k rámcovi Personaly nemožný. GPU spracováva všetky vykreslenie.

prístupy (s významnými upozorneniami):

1. BIOS Interrupts (veľmi staré systémy): V extrémne starých systémoch (myslite DOS alebo veľmi skoré verzie systému Windows), môžete * byť schopní použiť prerušenia BIOS na zapisovanie priamo do videokamerovej pamäte. Tieto prerušenia však nie sú štandardizované a sú vysoko závislé od systému. Tento prístup je takmer úplne zastaraný.

2. APIS špecifický pre operačný systém (obmedzené použitie): Niektoré operačné systémy (napríklad veľmi staré verzie systému Windows alebo špecifických vložených systémov) môžu poskytnúť API na nízkej úrovni na prístup k videokamerovaniu. Tieto API sú mimoriadne zriedkavé a vo všeobecnosti sa neodporúčajú.

3. Použitie grafickej knižnice: Namiesto priameho prístupu do pamäte by ste mali vždy používať grafickú knižnicu (napríklad SDL, SFML alebo knižnicu GUI na vyššej úrovni). Tieto knižnice zvládajú zložitosť interakcie s grafickým hardvérom a poskytujú oveľa bezpečnejší a prenosnejší spôsob zobrazovania textu. Abstraktujú detaily špecifické pre hardvér.

Príklad (ilustratívny, vysoko špecifický systém a pravdepodobne zlyhá):

Toto je iba * koncepčný * príklad a nebude nie Pracujte na väčšine moderných systémov. Poskytuje sa výlučne na ilustráciu zložitosti:

`` C ++

// Tento kód je vysoko špecifický pre systém a pravdepodobne nebude fungovať.

// Je to iba na ilustratívne účely.

#include

int main () {

// Toto je úplne svojvoľná adresa a bude takmer určite múdre.

nepodpísané char* videomemory =(nepodpísané char*) 0xb8000; // príklad pre veľmi staré systémy

// za predpokladu 2 bajtov na znak (znak a atribút)

Videomemory [0] ='H'; // Charakter

Videomemory [1] =0x07; // atribút (napr. Biela na čiernej)

Videomemory [2] ='E'; // Charakter

Videomemory [3] =0x07; // atribút

návrat 0;

}

`` `

Stručne povedané, vyhnite sa priamemu prístupu do pamäte k VRAM. Použite grafickú knižnicu; Je to jediný spoľahlivý a prenosný spôsob, ako vykresliť text na obrazovke v modernom kontexte. Priama manipulácia s pamäťou je riskantná, závislá od systému a je náchylná na spôsobenie nestability alebo havárií systému.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené