User manual

28
Cím
Parancs
Adatok
Megjegyzés
69 54 7A 59 26 35
14. kilistázás: Invertálás
12
Ugrások és elágazások
Eddig csak egy egyszerû ugrásról volt szó (3. parancs), amely maximum 15 címig nyúlt
vissza. Most egy abszolút ugrás (Jump) jön hozzá. Mivel az ugrási cél csak 4 bittel adható
meg, van egy kiegészítõ parancs, amely a cím legmagasabb helrtékû nibblejét határozza
meg. Ezáltal a címtartományunk 0255. Ez több, mint amire szükség van, mivel a kontroller
EEPROM-ja csak 128 byte-ot fog át, tehát a 00 - 7F (decimális 0 - 127) tartományt. A memória
ezzel gyakorlatilag nyolc oldalra, a 0 - 7 oldalra (Page 07) van beosztva. Egy abszolút ugrás
elõtt meg kell határozni az ugrás céljának az oldalát.
Két számlálóhurok a C és a D változóval ugyancsak abszolút ugrást hajt végre, amikor itt is,
mint korábban, meg kell határozni am oldalát.
A feltételes ugrások skip-parancsként (kihagyás, átugrás) mûködnek. Ha a mindenkori feltétel
igaz, egy cím átugrásra kerül. Ott állhatna pl. egy ugrás-parancs vagy akár egy számítási
parancs. Feltételként állhatnak rendelkezésre az A és B közötti összehasonlítások, valamint a
bemeneti port közvetlen lekérdezései.
Ezenkívül van még egy alprogram-felhívás (Call) és a hozzátartozó visszaugrási parancs
(Return). Bár több alprogram van engedélyezve, de egy alprogramból nem szabad további
alprogramot felhívni, mert az értelmezõ program mindig csak egy visszaugrási címet jegyez
meg.
808F: Adr-high = 015
900F: közvetlen ugrás (Jump) az Adr-high, Adr-low-ra (015)
A0AF: számlálóhurok C-szer Adr-high, Adr-low (015)
B0BF: számlálóhurok D-szer Adr-high, Adr-low (015)
C1CF: feltételes ugrás: ha (feltétel 115) akkor átugrani
C1: if A > B then Adr = Adr + 1
C2: if A < B then Adr = Adr + 1
C3: if A = B then Adr = Adr + 1
C4: if Din.0 = 1 then Adr = Adr + 1