Změny

Skočit na navigaci Skočit na vyhledávání

Absolute

Přidáno 1 241 bajtů, 11. 10. 2012, 23:10
Vytvorená stránka „Se standardní direktivou absolute se proměnná deklaruje na absolutní adrese paměti. ;Syntaxe var identifikátor: typ absolute seg:ofs; NEBO var identifikátor: ...“
Se standardní direktivou absolute se proměnná deklaruje na absolutní adrese paměti.

;Syntaxe
var identifikátor: typ absolute seg:ofs;

NEBO
var identifikátor: typ absolute proměnná;

;Popis
První tvar přímo určuje adresu (segment a ofset) proměnné. Obě konstanty musí být v rozsahu $0000 až $FFFF (é až 65,535).

Druhý tvar deklaruje novou proměnnou, která leží na stejné adrese jako existující proměnná.

S klauzulí [[absolute]] může seznam deklarovaných proměnných obsahovat pouze jeden identifikátor.

;Výstraha
* První tvar klausule absolute používejte velmi opatrně. Když program ve Windows nebo v DOSu pracuje v chráněném módu, nemusí mít přístupová práva do oblastí paměti vně vašeho programu. Při pokusu o přístup do těchto oblastí paměti se program pravděpodobně zhroutí.

Tento druhý tvar klausule absolute je bezpečný v chráněném módu [[DOS]]u a [[Windows]]. Paměť, ke které potřebujete přístup, je v oblasti vašeho programu.

Příklad
type
VectorTable = array[0..255] of pointer;
var
IntVectors: VectorTable absolute 0:0;
CrtMode: Byte absolute $0040:$0049;
Str: string;
StrLen: Byte absolute Str;

[[Category::assembler]]

Navigační menu