www.amapro.cz & David Bazala [AmaPro]

Otevře webové stránky AmaPro


Otevře hlavní stránku společnosti AmaPro
Internetové stránky určené pro studenty středních a vysokých odborných škol.


amapro.cz/odkazy Projekt eliminuje vyhledávání klíčových slov na komerčních stránkách a v e-schopech.



Nový projekt AmaPro
DEF MEM "blok pamětí" $0400 to $04ff
{DEF strukture#a1
...........
...........}
Příkaz definuje část paměti s gramatickým názvem "blok paměti" od adresy $0400 do $04ff pro naše účely. Za tímto příkazem by měla být definovaná struktura obsazování naší paměti. Pro jednoduchost se v gramatickém programování složitá struktura definic ignoruje. Je brána až v potaz při detailním programování. Budeme-li předpokládat přísun dat například z I/O brán (periferního zařízení), musíme je někam uložit do paměti. Rozsah paměti nemusíme uvádět, budeme ho akceptovat až při detailním programování.

Příklad:
DEF MEM "data_blok" $0000 to $ffff
FOR I=0 TO 65535
regA=(mem$0017)
OUT "data_blok"
NEXT I

Program způsobí v době čítání proměnné I zápis aktuálního bitového stavu adresy $0017 (například vektor ukazující na položku čas/sekundy) do naší alokované paměti "data_blok". Procedura poslání ukládaného bajtu je provedená příkazem OUT ukazující na "data_blok". Ve struktuře definované pro MEM je proces zprostředkován pomocí registru A. Pokud by jsme si nebyli plně jistí, že nemůže dojít ke změně obsahu A registru, použijme zprostředkování přenosu pomocí universální proměnné.

Gramatický výpis programu by vypadal:

DEF MEM "data_blok" $0000 to $ffff
FOR I=0 TO 65535
A=(mem$0017)
OUT "data_blok"
NEXT I

Pokud by na adrese $0017 byl vektor ukazující na položku vteřiny ze systémového času, byl by aktuální čas vteřin kopírován do paměti "data_blok" a výpis paměti by byl asi takový.

$0000 _15
$0001_15
:
:
$5555 _16
$5556 _16
:
:
$fffe_17
$ffff_17

Dle rychlosti procesoru by trvala doba celého čítání od I=0 do i=65335. V našem případě by to bylo asi 2 vteřiny. Rozdílem obsahů na adresách $0000 a $ffff by jsme dostali dobu celého čítání v sekundách:

regA= (mem$ffff - mem$0000)

Rozdíl by byl uložen v registru A. Přirozeně že vlastní zdrojová část našeho gramatického programu nesmí ležet v oblasti "data_blok" nebo-li v adresním prostoru $0000 až $ffff.

Otevře stránky Fulltextové vyhledávání na celém serveru
Digitalizované odborné knihy
Velká encyklopedie pojmů a zkratek
Česko - anglicko - německý technický slovník
Klasický katalog firem, služeb a stránek
OnLine překladač  vět a textů (nepoužívá Google)
Stránky pro chvíle oddechu od studia, relaxace
Katalog českých firem dle technologií
Internetový odkazník




 Wikipedie   Seznam stránek   Kapitoly témat   Významné servery   Klíčová slova 








Otevře hlavní stranu společnosti AmaPro

Všechna práva vyhrazena. Určeno jen pro osobní využití. Bez předchozího písemného souhlasu správce www.amapro.cz je zakázána jakákoli další publikace, přetištění nebo distribuce jakéhokoli materiálu nebo části materiálu zveřejněného na www.amapro.cz a to včetně šíření prostřednictvím elektronické pošty. Články, jejichž přímým autorem není amapro.cz lze publikovat pouze se souhlasem jejich majitelů či administrátoru příslušného webu.