Ľudmila Jánošíková | ||
Programovanie v jazyku symbolických adries | ||
pre 32-bitové procesory Intel | ||
|
||
Symbolické konštanty
Podobne ako vo vyššom programovacom jazyku, aj v JSA sa symbolické mená pre konštanty zavádzajú preto, aby uľahčili orientáciu v programe, prípadne jeho modifikáciu. Určite dá menej námahy opraviť konštantu v programe raz, než keby sme museli prezerať celý program a opravovať každý výskyt. Konštanty sa definujú pomocou direktívy EQU alebo direktívy =. Rozdiel medzi oboma direktívami je ten, že konštantu zavedenú pomocou direktívy = možno predefinovať. Symbolické konštanty často využívajú preddefinovaný symbol $. Konkrétna hodnota sa symbolu $ prideľuje pri preklade a je ňou aktuálny offset v danom segmente. V nasledujúcom príklade symbol $ reprezentuje adresu slabiky v dátovom segmente, ktorá nasleduje za reťazcovou premennou Retaz. ÚlohaVypíšte na obrazovku znakový reťazec uložený v premennej Retaz. RiešenieTáto úloha je modifikáciou úlohy o výpise reťazca, ale reťazec teraz nie je ukončený nulou. Pretože ho opäť chceme vypisovať po jednotlivých znakoch, využijeme symbol $ na získanie dĺžky reťazca. Dĺžku reťazca uložíme do konštanty PocetZnakov. TITLE MASM VypisRetazca(main.asm)INCLUDE Irvine32.inc .data Retaz DB "No nazdar!" PocetZnakov EQU $-Retaz .code main PROC mov edx,offset Retaz; ulož do edx adresu 1. znaku reťazca mov ecx,PocetZnakov; počet opakovaní cyklu VypisZnak Vypis:
mov edi,0; prvý znak má index 0 mov al,[edx+edi]; ulož do al znak na offsete edx+edi call WriteChar inc edi; zvýš index o 1 - prejdi na ďalší znak
loop VypisZnak |
Načo je vám jazyk symbolických adries?
Architektúra moderných procesorov Symbolické konštanty Služby operačného systému MS-DOS Služby operačného systému Windows 95/98/NT/XP |
|
| ||
Vydala Žilinská univerzita v Žiline, 2000. ISBN 80-7100-723-4. Otázky a pripomienky môžete poslať autorke. Naposledy upravené 28.9.2015. |