Ľudmila Jánošíková

Programovanie v jazyku symbolických adries

pre 32-bitové procesory Intel
Obsah Index
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.

Úloha

Vypíšte na obrazovku znakový reťazec uložený v premennej Retaz.

Riešenie

Tá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
VypisZnak:

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
Koniec:
exit
main ENDP
END main

Hore

Načo je vám jazyk symbolických adries?

Architektúra moderných procesorov

Registre

Spôsoby adresovania

Premenné a návestia

Symbolické konštanty

Inštrukčný súbor

Segmentové direktívy

Moduly

Služby operačného systému MS-DOS

Služby operačného systému Windows 95/98/NT/XP

Systémová úroveň vstupu a výstupu

Prostriedky pre prípravu programu

Atribúty premenných a návestí | Inštrukčný súbor
Vydala Žilinská univerzita v Žiline, 2000. ISBN 80-7100-723-4.
Otázky a pripomienky môžete poslať autorke.
Naposledy upravené 28.9.2015.