Konštanty definované prekladačom
Tieto konštanty sa používajú presne tak isto, ako konštanty, ktoré si sami nadefinujete. Ich hodnota sa môže v rámci zdrojového textu meniť.
$
- konštanta obsahuje pozíciu v aktuálnom segmente (v tvare SEGMENT:OFFSET). Používa sa pre určenie veľkosti bloku dát, alebo programu, prípadne pre skok o známy počet bajtov. Príklad:Inštrukcia JMP $+2 spôsobí skok na adresu IP+2, kde IP je (INSTRUCTION POINTER) čiže register obsahujúci ofset adresy práve vykonávanej inštrukcie. POZOR! Pri takýchto skokoch musíte poznať dĺžku inštrukcie. Tú môžete zistiť tak, že napríklad súbor prog1.ASM preložíte takto: TASM prog1.ASM /la. la je prepínač, ktorý umožní vytvorenie podrobného súboru s príponou *.LST. V ňom nájdete všetky potrebné informácie.
@CODE - konštanta obsahuje segmentovú adresu kódu programu.
Píklad: .CODE@CURSEG
- konštanta obsahuje segmentovú adresu aktuálneho segmentu, t.j. segmentu v ktorom je použitá. Príklad:@DATA - konštanta obsahuje segmentovú adresu dát.
Príklad:@STACK
- konštanta obsahuje segmentovú adresu zásobníka, ktorý je určený direktívou .STACK.@STARTUP - konštanta určuje vstupnú adresu programu. Je nadefinovaná iba vtedy, keď je v zdrojovom texte použitá pseudoinštrukcia .STARTUP.
Príklad: