Absolute: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
(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: ...“) |
m (1 revízia: Assembler pismeno D) |
||
(Nejsou zobrazeny 4 mezilehlé verze od stejného uživatele.) | |||
Řádek 28: | Řádek 28: | ||
StrLen: Byte absolute Str; | StrLen: Byte absolute Str; | ||
− | [[Category | + | [[Category:assembler]] |
Aktuální verze z 9. 11. 2012, 21:18
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 DOSu 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;