POLITECHNIKA POZNAŃSKA INSTYTUT AUTOMATYKI
6 0 - 9 6 5 Poznań, pl. M. S k ł o d o w s k i e j - C u r i e 9 tel. 3 2 0 -2 1 w. 321, 3 2 5
Z l e c e n i o d a w c a
Z a r z ą d Dróg i Mostów P o z n a ń , u l . W i l c z a k 16
i avu«f a r n a
J ę z y k sy m b o l ic z n y AWIK
N r u m o w y
IA-U/11 /7*V75 NB
— g---
£ R o d z a j o p r a c o w a n i a
I n s t r u k c j a p r o g r a m i s t y
N r a r c h i w a l n y
76006
Z G P P A A 7 4 1 /7 2 - 1 0 0 0
J ę
Z l e c e n i o d a w c a :
Znak z l e c e n i a : Nasz znak:
P o l i t e c h n i k a P o zn ań s k a I n s t y t u t A u to m a ty k i
z y k s y m b o l i c z n y A I I K
t
- I n s t r u k c j a p r o g r a m i s t y -
Z arz ą d Dróg i Mostów P o z n a ń , u l . W i l c z a k 16 T R E /71J2/75
IA -U /1 1 /7 4 /7 5 B
D y r e k t o r I n s t y t u t u P r o f . d r h a b . i n ż . A n t o n i
P o z n a ń , 1970
A u t o r z y »
d r i n ż . J a c e k M a r t i n e k mgr i n ż . J a n N a d o l s k i mgr J e r z y B a r t o s z e k
1 . ’ Wstęp
AWIK j e s t ję z y k i e m adresów s y m b o l i c z n y c h maszyny WIK.
WIK j e s t maszyną w i r t u a l n ą c z y l i t a k ą , k t ó r a n i e j e s t z r e a l i z o wana s p r z ę t o w o , l e c z j e s t utw orzona p r z e z z e s p ó ł programów ma
szyny c y f r o w e j Momik 8 b - 1 0 0 . O r g a n i z a c j ę WIK-a o p i s a n o s z c z e gółowo w [ i ] ,
AWIK j e s t ję z y k i e m pr ogra m ow an ia n i s k i e g o poziom u, w k t ó rym a d r e s y i nazwy danych m oż na.w yraża ć p r z y pomocy nazw z ł o ż o n y ch ze znaków a l f a n u m e r y c z n y c h i d o b i e r a n y c h p r z e z p r o g r a m i s t ę . Pro gram n a p i s a n y w j ę z y k u AWIK (p ro g r a m źró d ło w y ) j e s t c i ą g i e m
t z w . j e d n o s t e k p r o g ra m u . J e d n o s t k ą może być .- ■ ro z kaz
- d y rekty w a
- d e f i n i c j a nazwy ‘ - p a r a m e t r
- t e k s t
- k o m e n t a r z . <
' P o d c z a s t ł u m a c z e n i a progra m u źródło w ego k o m e n te rz e s ą Ig n o ro w a n e , dyr ek ty w y s ł u ż ą do s t e r o w a n i a t ł u m a c z e n i e m , za ś r o z k a z y , p a r a m e t r y i t e k s t y s t a j ą s i ę (po p r z e t ł u m a c z e n i u ) e l e m e n t a m i pro g ra m u wynikowego.
Program wynikowy j e s t t e k s t e m uzyskiwanym po dwóch p r z e b i e g a c h t r a n s l a t o r a . T e k s t t e n s k ł a d a s i ę ze znaków a l f a n u m e r y c z n y c h i s t a n o w i z a p i s s t a n u p a m i ę c i w k o d z i e sz e sn a stk o w y m .
T ak więc j e d n o słowo 8 - b i t o w e p a m i ę c i (1 b a j t ) j e s t w tym z a p i - s i e r e p r e z e n t o w a n e p r z e z dwa z n a k i s z e s n a s t k o w e . * /'
* / w z a p i s i e szesna stkow ym s t o s u j e s i ę n a s t ę p u j ą c e z n a k i : 0 , 1 , 2 , . . . , 9 , A , B , C , D , E , P .
Program wynikowy z a p i s u j e s i ę do p a m i ę c i Momika p r z y pomocy s p e c j a l n e g o pro g ra m u ł a d u j ą c e g o .
T r a n s l a t o r j ę z y k a AWIK zaprogramowano w L I S P - i e . W t e n - s p o sób p o w s t a ł t z w . t r a n s l a t o r skfośny, d o k o n u j ą c y t ł u m a c z e n i a p r o - , gramów d l a maszyny Momik na i n n e j m a s z y n i e , w y p o s a ż o n e j w s y s tem L I S P - u . P r z y t a k i m r o z w i ą z a n i u t e k s t p r o g ra m u z a p i s a n e g o w j ę z y k u AWIK p o w i n i e n s t a n o w i ć dane możliwe do z a a k c e p t o w a n i a p r z e z s y s t e m L I S P - u . Wynika z t e g o , że sło wa j ę z y k a AWIK muszą ■ być j e d n o c z e ś n i e słowami w s e n s i e j ę z y k a LIS P. /
v. ■ • ' . • :
, ' s . .*
2 . Słowa j ę z y k a AWIK'
. W j ę z y k u AWIK i s t n i e j ą t r z y r o d z a j e słó w : - na zwy
- l i c z b y c a ł k o w i t e - o g r a n i c z n i k i
Nazwa j e s t t o s z n u r z ł o ż o n y z l i t e r , c y f r , z n a k ó w i u-"»
r o z p o c z y n a j ą c y s i ę l i t e r ą . Nazwa n i e może z a w i e r a ć w i ę c e j n i ż 64 z n a k i .
P r z y k ł a d y :
BUPOR ' ALA
PR1-PR2 KV1+2 C12
VMAX-VMIN
- 2 -
* / R e a l i z a c j a d l a e . m . c . K202
r
4 -
L i c z b y c a ł k o w i t e d z i e l ą s i ę na ósemkowe i d z i e s i ę t n e .
L i c z b a ósemkowa r o z p o c z y n a s i ę c y f r ą O, po k t ó r e j może n a s t ę p o wać do 6 p o z y c j i z n a c z ą c y c h . Z a p i s u j e s i ę na n i c h c y f r y ósemko
we O, 1 , 2 , . . . , 7 , z tym, że n a j w i ę k s z ą a k c e p to w a n ą l i c z b ą ósem
kową j e s t 017 7 7 7 7 g j bowiem z a p i s dwójkowy l i c z b y ósemkowej n i e może p r z e k r a c z a ć 16 b i t ó w .
P r z y k ł a d y :
O, 01 , 013 , 011
L i c z b a d z i e s i ę t n a s k ł a d a s i ę z c y f r d z i e s i ę t n y c h
0 , 1 , 2 , . . . . , 9 p o p r z e d z o n y c h znakiem + l u b - . Znak + można o p ó ś - c i ć j e ś l i n a j s t a r s z a c y f r a l i c z b y j e s t r ó ż n a od 0 . L i c z b a d z i e s i ę t n a może s k ł a d a ć s i ę co n a j w y ż e j z 5 c y f r , a j e j w a r t o ś ć p o winna by ć z a w a r t a w p r z e d z i a l e od -32768 do +32767, bowiem z a p i s dwójkowy l i c z b y d z i e s i ę t n e j t a k ż e n i e może p r z e k r a c z a ć 16 b i t ó w . P r z y k ł a d y :
+ 0 , +012 , -0 1 6 , +12 , 12 , - 1 2 x
L ic z b a m i d z i e s i ę t n y m i n i e s ą : 0 , 33700 , 7 . 2 , 3^2
O g r a n i c z n i k a m i s ą n a s t ę p u j ą c e z n a k i a l f a n u m e r y c z n e : ( ) [ ] i y " o d s t ę p " "powró t k a r e t k i "
• "zmiana w i e r s z a " o r a z p a r a znaków : =
Z b i ó r słów można z d e f i n i o w a ć k r ó t k o w -s p o só b n a s t ę p u j ą c y :
< sio w o > : : = <nazwa> | < l i c z b a c a ł k o w i t a > j < o g r a n i c z n i k >
r ' , , , 6 3
< nazwa > : : = < l i t e r a > (< l i t e r a > J < c y f r a ) j < znak >
♦ 0
< l i c z b a c a ł k o w i t a ) : : = < l i c z b a ósemkowa>
J
< l i c z b a d z i e s i ę t n a )1 3
l i c z b a ósemkowa > : : = 0 { 0 | 1 } [<( c y f r a ó s e m k o w a )]
0 J 0
- 5 -
O
' 5 > 4
< l i c z b a d z i e s i ę t n a > : : = < znak > |"< c y f r a >] j < c y f r a ! > [ < c y f r a )
< o g r a n i c z n i k > : := ( | ) | [ | ] | ; | * | := | , | s p J cr J [ f
< l i t e r a > : := A | B | C | D | E | P j G | H j I | J | K | L 1 M J N I 0 f P Q | R | S | T | U | V 1 W | X J Y J Z
! v .
< c y f r a > : := 0 . | 1 | 2 | 3 | 4 | 5 | 6 j 7 J 8 j 9
< c y f r a 1 > : : = 1 | 2 J 3 I. 4 J 5 | 6 J 7 J 8 J 9
< c y f r a ó s e mk o wa ) : : = 0 | l | 2 j 3 j 4 j 5 | . 6 | 7
< z na k > : := + j -
f n
W tym z a p i s i e ... j e s t s k r ó t e m wskazującym, że t r e ś ć u j ę t a i ' m
w n aw ia s y może w y s t ą p i ć od m do n r a z y .
3 . A d re so w an ie
P am ięć maszyny w i r t u a l n e j Y/IK s k ł a d a s i ę z segmentów, z k t ó r y c h każdy ma d ł u g o ś ć 256 słów 8 - b i t o w y c h .
A d re s o w a n ie p a m i ę c i w i r t u a l n e j odbywa s i ę p r z e z c z t e r y r e j e s t r y bazowe (zwane 3 - r e j e s t r a m i ) p o s i a d a j ą c e numery
0, 1 , 2 , 3. W S - r e j e s t r a c h u m ie szcza s i ę i d e n t y f i k a t o r y s e g mentów. I d e n t y f i k a t o r se gm entu j e s t l i c z b ą 5 - b i t o w ą ( p r z y wy
k o r z y s t a n i u t y l k o p a m i ę c i o p e r a c y j n e j ) l u b '1 6 - b i to w ą ( p r z y w s p ó ł p r a c y z p a m i ę c i ą d y s k o w ą ) .
Dwa b i t y o k r e ś l a j ą c e nu m er- S - r e j e s t r u i 8 - b i t ó w numeru słowa w segm en cie s k ł a d a j ą s i ę na 10 - b i t o w y a d r e s w z g l ę d n y .
P r o g r a m i s t a p i s z ą c p r o g ra m w j ę z y k u AWIK p o s ł u g u j e s i ę zatem 1 0 - b i t o w y m i a d r e s a m i względnymi i a d r e s u j e p am ię ć względną
o maksymalnej p o j e m n o ś c i 1024 s ł o w a . U m i e j s c o w i e n i e p a m i ę c i w z g l ę d n e j w p a m i ę c i w i r t u a l n e j z a l e ż y od s t a n u S - r e j e s t r ó w w momencie wykonywania p r o g r a m u . W ogólnym p r z y p a d k u segmenty k o l e j n e w s e n s i e p a m i ę c i w z g l ę d n e j mogą n i e być k o l e j n y m i s e gmentami w p a m i ę c i w i r t u a l n e j . I d e n t y f i k a t o r y segmentów z a p i s u j e s i ę do S - r e j e s t r ó w p r z y pomocy s p e c j a l n y c h rozkazów o p i s a n y c h d a l e j .
4 . D e f i n i o w a n i e nazw '
Nazwie n a d a j e s i ę w a r t o ś ć w d e f i n i c j i nazwy l u b w d e f i n i c j i e t y k i e t y .
D e f i n i c j a nazwy p o s i a d a s k ł a d n i ę
<( d e f i n i c j a nazwy > : := < nazwa > := < w y r a ż e n i e >
V/ momencie n a p o t k a n i a p r z e z t r a n s l a t o r d e f i n i c j i nazwy, w a r t o ś ć w y r a ż e n i a w y s t ę p u j ą c e g o w t e j d e f i n i c j i powinna być
możliwa do o b l i c z e n i a . Wynika s t ą d , że w y r a ż e n i e n i e może z a w i e r a ć nazw k t ó r y c h j e s z c z e n i e z d e f i n i o w a n o .
E t y k i e t a j e s t t o nazwa ( a d r e s s y m b o l i c z n y ) m i e j s c a w p r o g r a m i e . W a r t o ś c i ą •e t y k i e t y powinna by ć l i c z b a c a ł k o w i t a z p r z e d z i a ł u [O. *• 1 0 2 3 ] . D e f i n i c j a e t y k i e t y p o s i a d a s k ł a d n i ę :
< d e f i n i c j a e t y k i e t y > : : = ( < nazwa > )
Nazwie w y s t ę p u j ą c e j w d e f i n i c j i e t y k i e t y - n a d a j e s i ę w a r t o ś ć równą b i e ż ą c e j w a r t o ś c i l i c z n i k a ad res ów t r a n s l a t o r a .
- 7 ~
5. W yra ż e n ia
Wyrażeniem w j ę z y k u AWIK j e s t - nazwa
- l i c z b a c a ł k o w i t a
- n a p i s 1 zbudowany z w y ra ż e ń p r z y pomocy j e d n e g o z o p e r a t o rów PLUS, MINUS, TIMES, DIYBY, S i e w e n t u a l n i e nawiasów ( • 1 >'•
O p e r a t o r y PLUS, MINUS, TIMES, DIYBY i S s ą o p e r a t o r a m i dwuargumen- towymi. O p e r a t o r PLUS o zna cz a d o d a w a n ie , MINUS - odejmowanie,
TIMES - m n o ż en ie , DIYBY - d z i e l e n i e . . O p e r a t o r S powoduje pomnoże
n i e p i e r w s z e g o o p e r a n d u p r z e z 256 i d o d a n i e do. t a k o t r z y m a n e j l i c z b y w a r t o ś c i d r u g i e g o o p e r a n d u . D z i ę k i temu o p e r a t o r o w i mnżemy z a p i s y w a ć .a d r e s y wzg lę dne j a k o w y r a ż e n i a p o s t a c i
<(nr S - r e j e s t r u y S <( a d r e s w 'r a m a c h s e g m e n t u >
• * \
W sp o s ó b ś c i s ł y w y r a ż e n i a można o p i s a ć n a s t ę p u j ą c o :
<w y r a ż e n i e > : := < t e r m y I < te r m > <(o p e r a t o r 1 y < w y r a ż e n i e >
< te rm y : := < c z y n n i k > | <(_ c z y n n i k )><( o p e r a t o r2 ^ < _ t e r m >
^ c z y n n i k ^ : ; = <( na zwa y | <C l i c z b a c a ł k o w i t a > | ( < w y r a ż e n i e ) ) , < o p e r a t o r 1 > : : = PLUS | MINUS
*
< o p e r a t o r 2 > : : = TIMES i DIYBY | S Poprawnymi w y r a ż e n i a m i s ą n p . :
+127
. I | ' ‘ ;
, KUBA
VSR TIMES (5 PLUS 2) 2 PLUS VSR TIMES 5
i
. — 5 MINUS 7 PLUS 2 5 MINUS (7 PLUS -2) ' (5 PLUS 7) TIMES SUMSR‘
A TIMES B DIYBY ODCHYLENIE
l ' C S (4 0 TIMES 2 DIYBY X) '
S ' ■ !
B łęd n e s ą n a s t ę p u j ą c e n a p i s y : 3 + 2-
— A TIMES B 2PLUS3 2S43
Nazwa, k t ó r e j nadano w a r t o ś ć nazywa s i ę nazwą o k r e ś l o n ą . Wyrażeniem o k reślo nym j e s t
- l i c z b a
- nazwa o k r e ś l a n a
/
- w y r a ż e n i e ' zbudowane p r z y pomocy o p e r a t o r a z dwóch / . w y r a ż e ń o k r e ś l o n y c h .
Dla każ deg o w y r a ż e n i a o k r e ś l o n e g o można w o c z y w i s t y sp o só b o k r e ś l i ć w a r t o ś ć .
\ -
6 . Rozkazy a r y t m e t y c z n o - l o g i c z n e
«
Rozkazy a r y t m e t y c z n o - l o g i c z n e kom putera WIK d z i e l i s i ę na p i ę ć g r u p :
a) r o z k a z y ad r e s o w e ,
/ ' ■
b) r o z k a z y z operandem b e z p o ś r e d n i m , c)‘ r o z k a z y z k r ó t k i m argumentem, d) r o z k a z y bezargumentowe k r ó t k i e , e) r o z k a z y bezargum entowe d ł u g i e . a) Rozkazy adresowe
Rozkaz adresowy p o s i a d a s k ł a d n i ę :
^ r o z k a z adresowy )>: : =
< nazwa r o z k a z u ad r es o w e g o ) < o g r ) [ l < o g r > ] [ x ( o g r ) ] < ( a d r e s względny) - - 8 -
- 9 -
< nazwa r o z k a z u a d r e s o w e g o > : : =
LA 1 ŁX | SA | SX I AD | SU I JP | JS | CO
< o g r > : : = , | s p
<a d r e s w z g l ę d n y ) : : = ^ w y r a ż e n i e )
S k r ó t [ . . . } o z n a c z a , że u m i e s z c z e n i e w r o z k a z i e t r e ś c i u j ę t e j
* . S . ' . • • •
w n aw ia s y n i e j e s t k o n i e c z n e .
W a r t o ś ć a d r e s u w zg lę d n eg o powinna by ć z a w a r t a w p r z e d z i a l e od 0 do 10 2 3.
L i t e r a I o z n a c z a a d r e s a c j ę . p o ś r e d n i ą , a l i t e r a X ozn acz a X - m o d y f i k a c j ę .
Rozkazy ad res owe p o s i a d a j ą n a s t ę p u j ą c ą sem anty kę ( p a t r z t e ż [1]}
Nazwa r o z k a z u
ad res owego T r e ś ć Opis o p e r a c j i
LA IX SA SX AD SU ML JP JS
CO
Ląd uj A . Ładuj X P a m i ę t a j A P a m i ę t a j ' X Dodaj do A Odejmij od A Mnóż l o g i c z n i e p r z e z A
Skocz
Skocz ze ś la d em
\ Porówna j a r y t m e t y c z n i e
A / — A A / — X ' / A / — V / X / — V
/ A / + A / — A / A / - A / A / A / a / V / — A
V LR
/LR0_1/ - V; /LR2 _9/ — V+1 V + 2 — LR
J e ż e l i / A / < / V / t o 1 - L , 0 —E, 0 ~ G .
J e ż e l i / A / = / V / t o 0 — L, ’1— E, 0 —G
J e ż e l i / A / > / V / t o 0-*-L, 0 ~ E , 1-*"G
P r z y k ł a d y LA I X .24;
LA,I , X , 24;
' LX X ALA TIMES (21 DIVBI 7 MINUS 1 ) ; ML 0377;
CO,+014;
B łęd n e s ą n a s t ę p u j ą c e n a p i s y : SU X PLUS 2;
J P . I X S 3 ; JS 32
b) Rozkazy z operańdem b e z p o ś r e d n i m
. Rozkaz z operańdem b e z p o ś r e d n i m p o s i a d a s k ł a d n i ę :
< r o z k a z z operańdem b e z p o ś r e d n i m > : : =
<(nazwa r o z k a z u z operańdem b e z p o ś r e d n i m ><(ogr )<(o p erand > ; nazwa r o z k a z u ' z operańdem b e z p o ś r e d n i m ) : : =
LAS | LXS | ADS | XDS | SUS IXSS | JPS
<(ogr > : : = ■ , |s p
^o p e r a n d ) : : = ^ w y r a ż e n i e )
W a r t o ś ć o p e r a n d u powinna być z a w a r t a w p r z e d z i a l e od O do 2 ) 3 . Rozkazy t e j drupy p o s i a d a j ą n a s t ę p u j ą c ą se m a n ty k ę
Nazwa
r o z k a z u T r e ś ć Opis o p e r a c j i
LAS LXS ADS
Ładuj k r ó t k o A Ład uj k r ó t k o X Dodaj k r ó t k o do A
OPERAND —-A 8 _15 OPERAND — Xg_15 / A / + OPERAND — A XDS Dodaj k r ó t k o do X / X / + OPERAND — X SUS Odejmij k r ó t k o od A / A / - OPERAND — A XSS Odejm ij k r ó t k o od X / X / - OPERAND .— X
JPS Skocz k r ó t k o OPERAND -*-LR0 n
2 - 9 LR0_ i b e z zmian
♦
- 11 - P r z y k ł a d y :
LAS 210;
LXS 030;
ADS, SUMA MINUS22;;
. ' XDS 2, TIMES VMAX;
n a p i s y b ł ę d n e : '
SUS I 20.; . j ■
XSS 430;
« t •
JPS - 2 ;
o) Rozkazy z k r ó t k i m argumentem
Rozkaz t e j grupy p o s i a d a s k ł a d n i ę : p r o ż k a z z . k r ó t k i m a r g . ) : : =
(nazwa r o z k a z u z k r ó t k i m a r g . ) ( o g r >< k r ó t k i a r g u m e n t ) ; (nazwa r o z k a z u z k r ó t k i m a r g . ) : : = LL|LR|CL]CR[AL|AR)K1|K0 ( o g r ) : ’: = , | s p
< (k r ó t k i argu ment ) : : = ( w y r a ż e n i e )
W a r t o ś ć k r ó t k i e g o arg u m en tu powinna być z a w a r t a w p r z e d z i a l e od- 0 do I ) .
Rozkazy .z k r ótk im - argumentem p o s i a d a j ą n a s t ę p u j ą c ą se mantykę;
Nazwa
r o z k a z u T r e ś ć
--- -
Opis o p e r a c j i LL P r z e s u ń A l o g i c z n i e
w lewo
Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a w lewo- i l o ś ć p o z y c j i j e s t o k r e ś l o n a w k r ó t k i m a r g .
LR P r z e s u ń A l o g i c z n i e w prawo
Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a
w prawo - i l o ś ć p o z y c j i j e s t o k r e ś l o n a k r ó t k i m a r g .
CL P r z e s u ń A . ' c y k l i c z n i e w lewo
Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a cyklicznie w lewo - i l o ś ć p o z y c j i j e s t o k r e ś l o n a k r ó t k i m a r g .
CR P r z e s u ń A c y k l i c z n i e w prawo
Z a w a r t o ś ć A z o s t a j e p r z e s u n i ę t a c y k l i c z n i e w prawo - i l o ś ć p o z y c j i j e s t o k r e ś l o n a k r ó t k i m a r g .
- 12 - I
AL P r z e s u ń A a r y t m e t y c z n i e w lewo
A^- b e z zmian; z o s t a j e p r z e s u n i ę t a w lewo o i l o ś ć p o z y c j i o k r e ś l o n ą k r ó t k i m argumentem
AR P r z e s u ń A a r y t m e t y c z n i e -w prawo ■
A^- b ez zmian; z o s t a j e p r z e s u n i ę t a w prawo o i l o ś ć p o z y c j i o k r e ś l o n ą k r ó t k i m argumentem
K1 P r z e s k o c z , gdy przy
c i s k k l a w i a t u r y w c i ś n i ę t y
Gdy p r z y c i s k o k r e ś l o n y k r ó t k i m a r g u mentem j e s t w c i ś n i ę t y t o 1 — P
K0 P r z e s k o c z gdy p r z y c i s k k l a w i a -
U
t u r y ś c i ś n i ę t y
Gdy p r z y c i s k o k ń e ś l o n y k r ó t k i m a r g u mentem j e s t w c i ś n i ę t y t o 1 P . "
P r z y k ł a d y :
LL 0;
LR SMIN; * ■’ ’ ■' *■ . ’'V * •' * * * * : #
CL WlAX DIVBY SUMA; X?-' 'ł.1 * i- ' v! ' '7 •'1 ? i ' /. • n a p i s y b ł ę d n e :-s
AL - 1;;
t
AR 16;. * .
K1- 2
Rozkazy be zargumentowe k r ó t k i e
Rozkaz bezargumentowy k r ó t k i p o s i a d a s k ł a d n i ę :
( r o z k a z be z argument owy k r ó t k i ) > :: = < ( nazwa r o z k a z u bezargumentowego k r ó t k i e g o ; (nazwa r o z k a z u bezargu ment owego k r ó t k i e g o := JL| JE |JG lJ T ] J I [ZA|NA
- 13 -
Rozkazy bezargum entowe k r ó t k i e p o s i a d a j ą n a s t ę p u j ą c ą se m a n ty k ę : Nazwa
r o z k a z u T r e ś ć Opis o p e r a c j i
JL P r z e s k o c z gdy L=1 J e ż e l i L=1 t o 1 — P JE P r z e s k o c z gdy S=1 J e ż e l i E=1 t o 1 — P JG P r z e s k o c z gdy G=1 J e ż e l i G=1 t o 1 P JV P r z e s k o c z gdy V=1 ; • J e ż e l i V=1 t o 1 -«-P J.I P r z e s k o c z bezwarunkowo 1 — P
ZA Z e r u j A 0 — A
NA Neguj l o g i c z n i e A / A / — A
P r z y k ł a d y : •
JL;’ ■
JG;
e) Rozkazy bezargumentowe d ł u g i e Rozkaz t e j gr upy p o s i a d a s k ł a d n i ę
/ r o z k a z bezargumentowy d ł u g i > : : = OPT < o g r ) / n a z w a r o z k a z u
bezargurnentowego dłu giego)»;
<ogr > : : = , j sp
nazwa r o z k a z u bezargurnentowego d ł u g i e g o AX| ALR | CHA |CEK |XA |LRA Rozkazy bezargumentowe d ł u g i e p o s i a d a j ą n a s t ę p u j ą c ą s e m anty kę :
Nazwa
r o z k a z u T r e ś ć
... ....
Opis o p e r a c j i AX P r z e ś l i j A do X / A / X
ALR P r z e ś l i j A do LR / A / — LR
CHA Zamień słowa w A / A0 - 7 ^ - ^ A8 - 1 5 ; ^A8 - 1 5 ^ ^ 0 - 7
CHX Zamień słowa w X
/ x 0- 7 ^ ~~~ X8 - 1 5 ’ X0-7
XA P r z e ś l i j X do A / X / — A LRA P r z e ś l i j LR do A ¿LR/ — A P r z y k ł a d y :
OPT AX;
OPT CHA;
- 14 -
7 . Rozkazy s y n c h r o n i z a c y j n e
Rozkazy s y n c h r o n i z a c y j n e d z i e l ą s i ę na t r z y g r u p y : - r o z k a z y p r z e s y ł a n i a i n f o r m a c j i
- r o z k a z y 't w o r z e n i a p r o c e s o r ó w
*
- r o z k a z y s t e r o w a n i a p r a c ą p r o c e s o r ó w .
\
a) Rozkazy p r z e s y ł a n i a i n f o r m a c j i
\
Rozkaz t e j grupy' p o s i a d a s k ł a d n i ę
<rozlcaz p r z e s y ł a n i a i n f o r m a c j i > : : =
<(nazwa r o - p r z e - i n f ^<(ogr)> <(nazwa p r o c e so r a )> <(ogr)> <(ad res ;
<(nazwa r o - p r z e - i n f )- : SME |\VIvHD |SAN|\VAN
< o g r > : : = , sp
<(nazwa p r o c e s o r a )> : := ^ w y r a ż e n i e >
<(adres^> : : = < ( w y r a ż e n i e )>
W a rt o ś ć w y r a ż e n i a b ę d ą c e g o nazwą p r o c e s o r a musi być z a w a r t a w p r z e d z i a l e od 1 do 63 a w p r z y p a d k u rozkazów WMĘ i SAN rnoże być
zerem, n a t o m i a s t w a r t o ś ć a d r e s u musi być z a w a r t a w p r z e d z i a l e od 0 do 102 3.
Semantykę rozkazów t e j gru p y omówiono sz c z e g ó ło w o w 1 . ł ’u t a j p rz y to c z y m y t y l k o k r ó t k ą c h a r a k t e r y s t y k ę każdeg o r o z k a z u .
SME - w y ś l i j ko m unik a t - p r o c e s o r - n a d a w c a (w ykonujący r o z k a z SME) w y sy ła komun ikat do p r o c e s o r a - o d b i o r c y , k t ó r e g o nazwa j e s t
p odana w r o z k a z i e . A d re s o k r e ś l a p o ł o ż e n i e t r e ś c i komuni
k a t u w p a m i ę c i w z g l ę d n e j .
Y/ME - c z e k a j na komun ikat - sprawa z e n i e czy w k o l e j c e komunika
tów do p r o c e s o r a wykonują c ego r o z k a z WME z n a j d u j e s i ę ko
m unikat od p r o c e s o r a o nazw ie p o d a n e j w r o z k a z i e . J e ż e l i t a k i e g o ko m u n ik a tu n i e ma, t o p r o c e s o r z o s t a j e z a blo kow any.
W przec iw nym r a z i e t r e ś ć k o m u n ik a tu z n a j d u j ą c e g o s i ę w ko l e j c e w p i s u j e s i ę do p a m i ę c i od a d r e s u w sk az anego w r o z k a
z i e .
- 15 -
SAN - w y ś l i j o d p o w i e d ź ' - w y s ł a n i e o d p o w i e d z i do p r o c e s o r a o nazwie p o d a n e j w r o z k a z ie " . A dre s o k r e ś l a p o ł o ż e n i e t r e ś c i o d p o w ie d z i w p a m i ę c i .
\
WAN r c z e k a j na odpowiedź - s p r a w d z e n i e czy w k o l e j c e komuni
katów do p r o c e s o r a wyk onująceg o r o z k a z WAN z n a j d u j e s i ę odpowiedź od p r o c e s o r a o nazwie p o d a n e j w r o z k a z i e .
J e ż e l i t a k i e j o d p o w ie d z i n i e m a , t o p r o c e s o r z o s t a j e
z ablo kow any. W przeciwnym r a z i e t r e ś ć o d p o w ie d z i z o s t a j e p r z e p i s a n a do p a m i ę c i od m i e j s c a wskaz an ego p r z e z a d r e s w y s t ę p u j ą c y w r o z k a z i e .
P r z y k ł a d y : ■ . • SME 1 652;
S i t , RESZTA PLUS SUMA, BUPOR PLUS 7 2 ;
/
WME O 10; '
SAN , 0 , ST0S1 TIMES 2;
WAN , 1 , 2 S 130;
WAN y a 3 S -12;
b) Rozkazy t w o r z e n i a p r o c e s o r ó w
Rozkaz t e j grupy p o s i a d a s k ł a d n i ę : ( r o z k a z t w o r z e n i a p r o c e s o r a ) : : =
Cr o z k a z t w o r z e n i a p r o c e s o r a a r - l o g 3 |
• !
,• ( r o z k a z t w o r z e n i a p r o c e s o r a we- wy-zew)
<( r o z k a z t w o r z e n i a p r o c e s o r a a r - l o g ) - : : =
CA?<ogr) < nazwa p r o c e s o r a ) ( o g r ) < a d r e s ) ć ogr)<nazwa s e g m e n tu )
<( o g r ) ( p r i o r y t e t ) ;
< r o z k a z t w o r z e n i a p r o c e s o r a we-wy-zew> : : =
( . nazwa r o z k a z u t w o r z e n i a p r - w e - wy-zew) <fogr)(nazwa p r o c e s o r a ) ( o g r ) < n r u r z ą d z e n i a ) ;
-1 6 -
(nazwa r o z k a z u t w o r z e n i a pr-w e- w y-z ew > : : = CIP|C0P]CEP
<ogr > , | sp
<(nazwa p r o c e s o r a )> : : = .<(w y r a ż e n i e )>
<(nazwa se gm en tu )> ^ w y r a ż e n i e >
<(adres_)> : : = ^ w y r a ż e n i e )>
<(nr u r z ą d z e n i a y : := <(wyrażenie >
( ^ p r i o r y t e t /> : : = < w y r a ż e n i e
O g r a n i c z e n i a w a r t o ś c i w y r a ż e ń s ą n a s t ę p u j ą c e : nazwa p r o c e s o r a od 1 do 65
nazwa segm en tu od 0 do 51 '
a d r e s od 0 do 1025
n r u r z ą d z e n i a od 0 do 51 p r i o r y t e t od 0 do 7
t
K r ó t k a c h a r a k t e r y s t y k a rozkazów t w o r z e n i a p r o c e s o r ó w .
CAP - utw órz p r o c e s o r a r y t m e t y c z n o - l o g i c z n y . W r o z k a z i e p o d a j e s i ę nazwę t w o rz o n e g o p r o c e s o r a , a d r e s - o k r e ś l a j ą c y s t a n pocz ątk ow y r e j e s t r u LR, nazwę segm en tu - k t ó r a z o s t a n i e
um ie szczona w S - r e j e s t r z e wskazanym p r z e z dwa n a j s t a r sz e b i t y " a d r e s u " o r a z p r i o r y t e t p r o c e s o r a .
< CIP - utw órz p r o c e s o r w e j ś c i a . P r o c e s o r z o s t a j e związany z u r z ą d z e n i e m wejściowym o numerze podanym w r o z k a z i e . COP - utw órz p r o c e s o r w y j ś c i a . Z n a c z e n i e j e s t podobne j a k CIP.
CEP - utw órz p r o c e s o r z e w n ę t r z n y . Z n a c z e n i e j e s t podobne j a k CIP
/
P r z y k ł a d y : /
CAP, 60 , 2 S 50 , 50 , 5;
CAP , POPR PLUS 1 , 01025 , 2 , 1 ; CIP , OST PLUS 5 , 17;
I
- 17 -
c) Rozkazy s t e r o w a n i a pracą, p r o c e s o r ó w
Rozkaz n a l e ż ą c y do t e j grupy musi mieć n a s t ę p u j ą c ą s k ł a d n i ę
<r o z k a z s t e r o w a n i a p r a c ą p r o c e s o r a )
( r o z k a z s t e r o w a n i a b e z a d re s o w y ) j ( r o z k a z s t e r o w a n i a z adres em ( r o z k a z kodowania S - r e j e s t r u )
( r o z k a z s t e r o w a n i a bezadresowej::)» : : =
(nazw a r o z k a z u s t e r o w a n i a b e z a d r e s o w e g o > ( o g r ) ( n a z w a p r o c e s o r a ) (nazwa r o z k a z u s t e r o w a n i a bezadresowego)- : := DEPjSTljSTP
( r o z k a z s t e r o w a n i a z a d r e s e m ) : := ST2 ( o g r ) ( n a z w a p r o c e s o r a ) ( c g r ) ( a d r e s ) ; ( r o z k a z ł a d o w a n i a ' S - r e j e s t r u > : : = ‘
( n a z w a r o z k a z u ł a d o w a n i a S ~ r e j e s t r u ) ( o g r ) ( n a z w a s e g m e n t u ) ; (n az w a r o z k a z u ł a d o w a n i a S - r e j e s t r u ) : : = LS0 |LS1| LS2| LS3
(nazwa p r o c e s o r a ) : := ( w y r a ż e n i e ) » ( a d r e s ) : : = ( w y r a ż e n i e )
(n a z w a segm entu ) : : = ( w y r a ż e n i e ) ( o g r ) : : = , | sp
O g r a n i c z e n i a w a r t o ś c i w y ra ż e ń s ą n a s t ę p u j ą c e : nazwa p r o c e s o r a od 1 do 6 ;
. a d r e s od 0 do 102p
nazwa segm en tu od O do 31
C h a r a k t e r y s t y k a rożk az ów s t e r o w a n i a - p r a c ą p r o c e s o r ó w .
DSP - usuń p r o c e s o r - u s u n i ę c i e p r o c e s o r a o nazwie p o d a n e j w r o z k a z i e z n a j d u j ą c e g o s i ę w s t a n i e z a t r z y m a n i a lu b
z a b lo k o w a n ia i z a t r z y m a n i a .
N/
I .i
ST1 - s t a r t u j p r o c e s o r - wprowadzen ie p r o c e s o r a o nazwie - p o d a n e j w r o z k a z i e w s t a n p r z e t w a r z a n i a (gdy i ^ r o c e s o r
o k r e ś l o n y p r z e z "nazwę" b y ł w s t a n i e p r z e t w a r z a n i a l u b z a t r z y m a n i a ) l u b z a b lo k o w a n ia (gdy r o z p a t r y w a n y p r o c e s o r b y ł w s t a n i e z a b lo k o w a n ia l u b z a b l o k o w a n i a i z a t r z y mania)
STP - z a t r z y m a j p r o c e s o r - z a t r z y m a n i e p r o c e s o r a o nazwie p o d a n e j w r o z k a z i e .
*
ST2 - s t a r t u j p r o c e s o r od po dan ego a d r e s u - s t a r t o w a n i e p r o c e s o r a a r y t m e t y c z n o - l o g i c z n e g o o o k r e ś l o n e j nazwie od a d r e s u pod an ego w r o z k a z i e .
LS0 - ł a d u j S - r e j e s t r o numerze 0 - z a p i s a n i e do r e j e s t r u S0 p r o c e s o r a wyk onują c ego r o z k a z nazwy segmentu p o d a n e j w r o z k a z i e .
LS1, LS2, 1S3 - ł a d u j S - r e j e s t r o numerze 1 , 2 , 5 - d z i a ł a n i e a n a l o g i c z n e j a k r o z k a z u LS0.
P r z y k ł a d y DEP, 1;
ST1, MONITOR;
STP 24;
ST2 25 2 S 10;
LSO 51;
LS1 LASTN PLUS 1;
- 18 -
- 19 -
8 . Dyrektywy
Dyrektywy s ą j e d n o s t k a m i progra m u ź r ó d ł o w e g o , k t ó r e s t e r u j ą d z i a ł a n i e m t r a n s l a t o r a j ę z y k a AWIIW
S k ł a d n i a dyr ektywy
( d y r e k t y w a ) ( d y r e k t y w a bez argumentu)J<dytektyvya z a rg u m e n te n ( d y r e k t y w a b e z a r g u m e n t u > : : = £ ( nazwa d yrekty w y b e z a r g u m e n t u ) ] ( d y r e k t y w a z argumentem > : :=[<nazwa dyr ek ty w y z a r g u m e n t e m )
( w y r a ż e n i e ) ] (n az w a d yrekty w y b e z - a r g u m e n t u ) : : = PRCGEND|MODBEG|MODEND|GLOB|
'LAB|NLAB|STATE|TST j NTST | nazwa dyrek tywy z argumentem : : = SEG ( ADR | RES | INT | INT 0 1 OUT |[OUT
W a r t o ś ć w y r a ż e n i a b ę d ą c e g o argumentem dyr ektywy ADR musi być z a w a r t a w p r z e d z i a l e od 0 do 1025.
Semantyka d y r e k ty w
PRCGEND - k o n i e c progra m u - powoduje z a k o ń c z e n i e t r a n s l a c j i . MODBEG - p o c z ą t e k modułu pro g ra m u - w s z y s t k i e e t y k i e t y i nazwy
(zm ie nne t r a n s l a c j i ) . d e f i n i o w a n e w ew nąt rz modułu, k t ó r e n i e s ą p o p r z e d z o n e d y r e k ty w ą GLOB z o s t a j ą z d e f i n i o w a n e l o k a l n i e , t o zn acz y d e f i n i c j a o b o w ią z u je t y l k o w ew nątrz modułu.
MODEND - k o n i e c modułu prog ra m u
GLOB - d y re k ty w a p o z w a l a j ą c a z d e f i n i o w a ć g l o b a l n i e &4yk*e-4ę w ew nąt rz modułu. N a j b l i ż s z a w y s t ę p u j ą c a po d y r e k t y w i e GLOB d e f i n i c j a - e t y k i e t y l u b zm ie n n e j t r a n s l a c j i b ę - . d z i e d e f i n i c j ą g l o b a l n ą .
LAB - p o l e c e n i e wyprowadzania d e f i n i c j i e t y k i e t i zmiennych t r a n s l a c j i na w y j ś c i e o j j e r a t o r s k i e .
NLAB - u n i e w a ż n i e n i e p o l e c e n i a wydanego d y r e k t y w ą LAB.
STATE ■
TST -
NTST - SEG -
ADR -
RES -
INT -
INTG -
OUT -
- 20
d y r e k ty w a po wodują ca w p i s a n i e do progra m u wynitowego r o z k a z u STA r a p o r t u j ą c e g o s t a n p r o c e s o r a . W p i s a n i e
• ł
r o z k a z u STA ma m i e j s c e j e ś l i d y re k ty w a STATE j e s t p o p r z e d z o n a d y r e k t y w ą TST
d yrek tywy STATE p o p r z e d z o n e d y r e k t y w ą TST powod ują d z i a ł a n i a o p i s a n e wyżej
a n u l u j e e f e k t wykonanej p o p r z e d n i o dyrek ty w y TST.
u s t a l e n i e segm en tu od k t ó r e g o u m ie sz c z a n y b ę d z i e p r z e k ł a d p r o g r a m u . W pierw sz ym p r z e b i e g u t r a n s l a c j i d y r e k tywa SEG powoduje wyzerowanie zm ie n n e j ADR t r a n s l a t o r a , | n a t o m i a s t w drugim p r z e b i e g u o p r ó c z wyzerow ania zmien
n e j ADR wyprowadza s i ę na a k t u a l n e w y j ś c i e i d e n t y f i k a t o r segm en tu s ł u ż ą c y do s t e r o w a n i a programem ł a d u j ą cym. W a r t o ś c i ą argum e ntu d y rek ty w y powinna b y ć l i c z b a b ę d ą c a nazwą ( i d e n t y f i k a t o r e m ) s e g m e n tu ,
u s t a l e n i e w a r t o ś c i z m ie nne j ADR t r a n s l a t o r a c z y l i u s t a l e n i e a d r e s u w z g l ę d n e g o . Argumentem dyrek tywy powinno b y ć w y r a ż e n i e o k r e ś l o n e o w a r t o ś c i z z a k r e s u .od O 'do 1025.
z a re z e r w o w a n ie komórek w i l o ś c i o k r e ś l o n e j w a r t o ś c i ą a r g u m e n t u . Komórki ( 8 - b i t c w e ) z o s t a j ą wyzerowane,
u s t a l e n i e w e j ś c i a z który m w s p ó ł p r a c u j e p r o g ra m . t r a n s l a t o r a . W a r t o ś c i ą a rgum e ntu p o w i n i e n być numer u r z ą d z e n i a w e j ś c i o w e g o .
u s t a l e n i e w e j ś c i a o p e r a t o r s k i e g o - w a r t o ś c i ą ar g u m en tu p o w i n i e n być numer u r z ą d z e n i a w e j ś c i o w e g o ,
u s t a l e n i e w y j ś c i a z który m w s p ó ł p r a c u j e p ro g ra m t r a n s l a t o r a . W a r t o ś c i ą arg u m e n tu p o w i n i e n być numer u r z ą r d z e n i a w y j ś c i o w e g o .
- 21 -
OUTO - u s t a l e n i e w y j ś c i a o p e r a t o r s k i e g o - w a r t o ś c i ą argumentu, p o w i n i e n b y ć numer u r z ą d z e n i a w y j ś c i o w e g o .
U r z ą d z e n i a p o s i a d a j ą n a s t ę p u j ą c e numery:
C z y t n i k taśmy p a p i e r o w e j ... 1
C z y t n i k taśmy p a p i e r o w e j w s p ó ł p r a c u j ą c y v z buf orem p o czątk o w o wyzerowanym ... . 10
C z y t n i k taśmy p a p i e r o w e j w s p ó ł p r a c u j ą c y z bufore m - b e z wyzerowania b u f o r a ... 11
P e r f o r a t o r taśmy . . . ... 1
D ru k a rk a mozaikowa ... 2
D a l e k o p i s o p e r a t o r a ... ,. . ... 5 P r z y k ł a d y
' [MODBEG]
[res i l o s c p lus x ] [SEG 2 7 ] .
[ADR 2 S 15] • [INT 5 ]
[LAB ]
9 . P a r a m e t r y i t e k s t y
J e d n o s t k a progra m u zwana p a r a m e t r e m p o s i a d a n a s t ę p u j ą c ą s k ł a d n i ę
« ( p a r a m e tr^ : : = ,( pa r3m etr 1 - b a j t o w y > | < p a r a m e t r 2 - b a j t o w y >
^ p a r a m e t r 1 - b a jtowy > = PAR <[ogr > ¿ w y r a ż e n i e > < o g r > B;
<(para metr 2 - b a jtow y > PAR < ogr >< w y r a ż e n i e > < o g r > B < cgr)>B;
< o g r > : , j Sp
- 22 -
U m i e s z c z e n i e p a r a m e t r u w p r o g r a m i e źródłowym powoduje w p i s a n i e w a r t o ś c i w y r a ż e n i a w y s t ę p u j ą c e g o w d e f i n i c j i d o - j e d n e j l u b dwóch k o l e j n y c h komórek p a m i ę c i . J e ż e l i p r z y d e f i n i o w a n i u p a r a m e t r u 1 - b a j t o w e g o w a r t o ś ć w y s t ę p u j ą c e g o w n i e j w y r a ż e n i a p r z e k r a c z a 255» t o do p a m i ę c i w p is z e s i ę r e s z t ę z d z i e l e n i a w a r t o ś c i w y r a ż e n i a p r z e z 2 5 6 .
*
S k ł a d n i a t e k s t u j e s t n a s t ę p u j ą c a
< t e k s t > : : = TXT < o g r ><. t e k s t b e z ; } ;
< t e k s t b ez ; ) : := z n a k i > <ogr > ]
< z n a k i >: : = < l j . t e r a > | < c y f r a > | ! | % | £ | < | : | ' " | # | . | » [ — | / | ( | ) | [ ( 3 ( o g r > : : = ,'| sp
Każdy znak t e k s t u z o s t a j e u m i e s z c z o n y w jednym s ł o w i e p a m i ę c i .
10. Kom entarze
Komentarz j e s t j e d n o s t k ą programu i g n o ro w an ą p r z e z t r a n s l a t o r . P o s i a d a s k ł a d n i ę
< k o m e n t a r z > : : = [COM < o g r > < c i ą g słów > ]
< c i ą g s łó w ) : : = [ < słowo z wyj .3 ><ogr > ]
<( słowo z wyj . ] > - dowolne słowo n i e z a w i e r a j ą c e znaku ]
< o g r > : : = , | sp P r z y k ł a d
[COM POCZĄTEK PĘTLI GŁÓWNEJ ]
I V. , • . ; ' - . - . ■ • -5- .V
! ■ '
1 1 . S y g n a l i z a c j a i poprawa błędów
T r a n s l a t o r j ę z y k a AWIK z o s t a ł z r e a l i z o w a n y j a k o t r a n s l a t o r s k r o ś n y z w y k o r z y s t a n i e m s y s t e m u progra m ow ania LIS? 1 . 5 ' [2]
o r a z t r a n s l a t o r a u n i w e r s a l n e g o [ 5] > k t ó r y j e s t programem n a p i sanym w L I S P - i e . S t ą d mechanizm s y g n a l i z a c j i i poprawy błędów j e s t d w usto pnio w y. Błęd y l e k s y k a l n e , c z y l i b ł ę d y w s ło w a c h j ę z y k a AWIK p o d l e g a j ą reg u ło m poprawy obowiązującym d l a t e j r e a l i z a c j i L IS P -u , k t ó r ą s i ę w y k o r z y s t u j e . N a t o m i a s t b ł ę d y s t r u k t u r a l n e p o p r a w i a s i ę według z a s a d w y n i k a j ą c y c h ze sp o s o b u d z i a ł a n i a t r a n s l a t o r a u n i w e r s a l n e g o .
Błędy l e k s y k a l n e .
Omówimy o b e c n i e mechanizm ' s y g n a l i z a c j i i poprawy błędów l e k s y k a l n y c h , k t ó r y i s t n i e j e ' w s y s t e m i e LIS P-u d l a K202 [ 2 ] .
W y s t ą p i e n i e w s ł o w i e b ł ę d n e g o znaku' l u b znaku $ (na n i e k t ó r y c h k l a w i a t u r a c h z a s t ę p u j e go znak ) powoduje w y k r y c i e b ł ę d u p r z e r w a n i e wprowadzani a znaków z w e j ś c i a i p r z e j ś c i e do s t a n u
" o c z e k i w a n i e na poprawę b ł ę d u " . Na u r z ą d z e n i e o p e r a t o r s k i e wyprowadzany j e s t n a p i s
CORRECT:
po którym z o s t a j e w y p is a n e b ł ę d n e s ł o w o , np . CORRECT : AR$
i f u n k c j a RATOm LIS P-u p o z o s t a j e w s t a n i e " o c z e k i w a n i e na
poprawę b ł ę d u " aż do momentu n a p i s a n i a na u r z ą d z e n i u o p e r a t o r s kim znaku : l u b * .
P o d c z a s poprawy błędów można odczytywać d a l s z e z n a k i z wejś- c i a a k t u a l n e g o t a k , aby n i e b y ł y one poddawane a n a l i z i e . N a p i s a n i e j e d n e g o ze znaków c r , l f , sp powoduje o d c z y t a n i e z w e j ś c i a a k t u a l n e g o j e d n e g o znaku i wydrukowanie go na u r z ą d z e n i u ' o p e r a t o r s k i m . Znak t e n n i e j e s t a n a l i z o w a n y . Czynność może oyó p o w t a r z a n a w i e l o k r o t n i e .
- -23
W s t a n i e " o c z e k i w a n i e na poprawę b ł ę d u " w s z y s t k i e z n a k i poza c r , 1 £ , s p, : , mc s ą ig n o r o w a n e . N a p i s a n i e ba u r z ą d z e n i u o p e r a t o r skim znaku ig norow anego powoduje wydruk po nim znaku ? i p o w t ó r ne p r z e j ś c i e f u n k c j i RATOM LIS P-u ze s t a n u " o c z e k i w a n i e na p o -
\
praw ę b ł ę d u " do s t a n u "poprawa b ł ę d u " . N a t o m i a s t n a p i s a n i e znaku
* p r z e p r o w a d z a ze s t a n u " o c z e k i w a n i e na pop rawę b ł ę d u " do s t a n u
" b ł ą d " . •
W s t a n i e "poprawa b ł ę d u " można p o p r a w i ć b ł ę d n e słowo p r z e z n a p i s a n i e na u r z ą d z e n i u o p e r a t o r s k i m słowa po praw neg o, z a k o ń c z o nego znakiem c r , l f , s p . Można t a k ż e kończ yć t o słowo innym' o g r a n i c z n i k i e m , jednak , n a l e ż y p a m i ę t a ć , że z o s t a j e on z a p i s a n y w b u f o r z e , co może być p r z y c z y n ą b ł ę d n e g o d z i a ł a n i a f u n k c j i w e j ś c i a wykonanej p ó ź n i e j .
J e ż e l i w t r a k c i e poprawy b ł ę d u z o s t a n i e znów wyłcryty b ł ą d , t o ponownie p r z e c h o d z i s i ę do s t a n u " o c z e k i w a n i e na poprawę błędu." i z o s t a j e wydrukowany n a p i s CORRECT : ¿ b ł ę d n e słowo >
P r z e j ś c i e do s t a n u " b ł ą d " , c z y l i n a p i s a n i e na u r z ą d z e n i u o p e
r a t o r s k i m znaku * , ozna cz a r e z y g n a c j ę z d a l s z e j poprawy b ł ę d ó w . Na d a l e k o p i s i e p o j a w i a s i ę n a p i s
ERROR 2
i p r z e r y w a s i ę wykonanie f u n k c j i RATOM L I S P - u , a tym samym d z i a ł a n i e t r a n s l a t o r a j ę z y k a AY/IK.
P r z y k ł a d y
1 . Załóżmy, że z w e j ś c i a a k t u a l n e g o , p r z e c z y t a n o s z n u r DAA$
wtedy na u r z ą d z e n i u o p e r a t o r s k i m p o j a w i s i ę wydruk CORRECT : DAA$
Chcąc p o p r a w i ć sło w o , o p e r a t o r p i s z e d a l e j na u r z ą d z e n i u o p e r a t o r s k i m •
' : DATA
i f u n k c j o RATOM wprowadza słowo DATA.
- 24 -
- 25 -
2 , J e ż e l i , w s y t u a c j i omówionej w p o p r z e d n i m p u n k c i e , o p e r a t o r chce- o p u ś c i ć b ł ę d n e s ło w o , t o p i s z e ria u r z ą d z e n i u op»e r a t o r sk im
p. J e ż e l i w t e j samej s y t u a c j i o p e r a t o r chce o d c z y t a ć k o l e j n y znak z w e j ś c i a a k t u a l n e g o , t o p i s z e
I—I
i k o l e j n y znak z o s t a j e wcz ytany i wydrukowany na u r z ą d z e n i u o p e r a t o r s k i m . J e ż e l i o p e r a t o r chce go w p ro w ad zić , t o p i s z e : i p o w t a r z a znak o d c z y t a n y .
<•*
Uwaga
Z b i ó r słów w s y s t e m i e LIS P-u d l a K202 j e s t . b o g a t s z y od z b i o r u słów j ę z y k a AWIK. S t ą d n i e k t ó r e b ł ę d n e słowa w s e n s i e j ę z y ka AWIK mogą z o s t a ć z a a k c e p t o w a n e , j e ś l i s ą r ó w n o c z e ś n i e p o prawnymi słowami L I S P - u . Dotyczy t o p r z e d e w s z y s t k i m k r o p k i
j a k o o g r a n i c z n i k a , o r a z l i c z b zm ie n n o p rz e c in k o w y c h , k t ó r e n i e wyst ęp uj ą 'w AWIK-u.
Znak * j a k o z n a c z n i k końca taśmy
J e ś l i o g r a n i c z n i k p r z e c z y t a n y p r z e z f u n k c j ę RATOM LIS P-u j e s t . znakiem * , t o n a s t ę p u j e p r z e j ś c i e w s t a n ’’z a w i e s z e n i e " . Na u r z ą d z e n i u o p e r a t o r s k i m drukowany j e s t n a p i s
TAFE
i o c z e k u j e s i ę , aby o p e r a t o r n a p i s a ł j e d e n znak na tym u r z ą d z e n i u . J e ś l i tym znakiem b ę d z i e * , t o . n a s t ą p i p r z e r w a n i e wykonywania f u n k c j i RATOM, wydruk n a p i s u
ERROR 1
i p r z e r w a n i e d z i a ł a n i a t r a n s l a t o r a j ę z y k a AWIK. N a p i s a n i e do
w o ln eg o , i n n e g o znaku powoduje p o w tó rn e wywołanie f u n k c j i RATOM.
- 26 -
D z i ę k i temu można w y k o r z y s t a ć znak * j a k o z n a c z n i k końca taśmy p r z y p i s a n i u i n f o r m a c j i na t a ś m i e p a p i e r o w e j . Znak * c h r o n i p r z e d w ypadnię cie m taśmy z c z y t n i k a w p r z y p a d k u , gdy * na t a ś m i e um ie szczono b ł ę d n i e zb y t małą l i c z b ę j e d n o s t e k l e k s y k a l n y c h , l u b gdy i n f o r m a c j e p r z y g o t o w a n o na k i l k u t a ś m a c h i każda z n i c h kończy s i ę znakiem * . P r z e c z y t a n i e t e g o znaku z a w i e s z a wykonanie f u n k c j i RATOM. Można wymienić ta śm ę w c z y t n i k u i n a p i s a ć na u r z ą d z e n i u o p e r a t o r s k i m dowolny znak (poza
znakiem * ) , c o 'p o w o d u j e p ow tó rne wywołanie f u n k c j i RATOM.
Błędy s t r u k t u r a l n e
T r a n s l a t o r j ę z y k a AWIK wykrywa b ł ę d y s t r u k t u r a l n e p o s ł u g u j ą c s i ę mechanizmem opisanym s z c z e g ó ło w o w [ 3 ] . N a j p i e r w na u r z ą d z e n i e o p e r a t o r s k i e z o s t a j e wyprowadzony n a p i s i n f o r m u j ą c y o c h a r a k t e r z e b ł ę d u , a n a s t ę p n i e p o j a w i a s i ę s e k w e n c ja słów uznana za b ł ę d n ą . W s z y s t k i e słowa w y p is a n e w t e j s e k w e n c j i z o s t a j ą r ó w n o c z e ś n i e u s u n i ę t e z t e k s t u t ł u m a c z o n e g o . N a s t ę p n i e na u r z ą d z e n i e o p e r a t o r s k i e wyprowadza s i ę n a p i s CORRECT i o c z e k u j e s i ę na wprowadzenie słowa s t e r u j ą c e g o p r z e z o p e r a t o r a . O p e r a t o r ma do wyboru, k i l k a m o ż l i w o ś c i :
RTP - po n a p i s a n i u RTP n a s t ę p u j e wprowadzenie j e d n e g o słowa
z w e j ś c i a p o p r z e d n i o aktywnego i wyprowadzenie t e g o słowa na u r z ą d z e n i e o p e r a t o r s k i e . N a s t ę p u j e p ow ró t do s t a n u poprawy błę d ó w , j a k i i s t n i a ł po wyprow adzeni u słowa
CORRECT.
COR - p r z e c h o d z i s i ę do s t a n u poprawy błędów , w który m o p e r a t o r może w p i s a ć se k w e n c ję słów w t e k s t t ł u m a c z o n y . Sek
w e n c j ę t ę n a l e ż y z a kończ yć słowem KIN.
P I N • ozna c z a k o n i e c s e k w e n c j i s ł ó w , k t ó r e mają być w p is a n e w t e n s t t łumac'zony .
- 27 -
STOP - p r z e r w a n i e poprawy błędów i p r z e r w a n i e d z i a ł a n i a t r a n s l a t o r a .
In n e słowa pow od ują powtórny wydruk n a p i s u CORRECT i p r z e j c i e do s t a n u , w którym o c z e k u j e s i ę na wprowadzen ie słowa s t e r u j ą c e g o p r z e z o p e r a t o r a .
W t r a k c i e wprowadzan ia s e k w e n c j i słów w t e k s t t łu m ac z o n y słowa s t e r u j ą c e RTP, PIN i. STOP powodu ją t a k i sam e f e k t , j a k w s t a n i e po wydruku n a p i s u CORRECT.
P r z y k ł a d
J e ś l i w t e k ś c i e źródłowym w y s t ą p i b ł ę d n a j e d n o s t k a , (BEGIN] z a m i a s t (BEGIN)
■wtedy na u r z ą d z e n i u o p e r a t o r s k i m p o j a w i s i ę komu nikat (wRONG END OP LABEL)
BEGIN]
CORRECT
W y p i s a n i e • słów BEGIN o r a z ] o z n a c z a , że z o s t a ł y one u s u n i ę t e 'z t e k s t u ź r ó d ł o w e g o . O p e r a t o r p o w i n i e n zatem n a p i s a ć
COR BEGIN) PIN
T r a n s l a t o r z d e f i n i u j e e t y k i e t ę BEGIN i b ę d z i e k o n ty n u o w ał t r a n s l a c j ę t e k s t u ź r ó d ł o w e g o .
- 28 -
1 2 . U ruc hom ie nie t r a n s l a t o r a j ę z y k a AWIK
N a le ży z a ł o ż y ć do c z y t n i k a taśm ę b i n a r n ą sy s t em u LISP
*
i n a p i s a ć na d a l e k o p i s i e z l e c e n i e c z y t a n i a taśmy b i n a r n e j : RB*
a n a s t ę p n i e z l e c e n i e u r u c h o m i e n i a o s t a t n i o w c z y ta n e g o program u
■ A *
N a - d a l e k o p i s i e p o j a w i s i ę n a p i s LISP IS READY
N a le ż y w c i s n ą ć k l a w i s z 0 na p u l p i s i e o p e r a t o r s k i m j e d n o s t k i c e n t r a l n e j . . W t e d y - p o j a w i s i ę n a p i s
L IS P 1 :
U s t a l a s i ę w e j ś c i e p i s z ą c INPUT(10)
System odpowie:
+10
N a le ż y wówczas z a ł o ż y ć do c z y t n i k a ta śm ę t r a n s l a t o r a j ę z y k a AWIK i n a p i s a ć
START ( )
N a s t ą p i c z y t a n i e t a ś m y , k t ó r e zakończy s i ę wydrukiem z a p i s u SCANTAPE
L IS P 1 :
N a le ż y wówczas n a p i s a ć ponownie START ( ) -
i c z e k a ć , aż p o j a w i s i ę - w y d r u k STOP
L IS P 1 :
Wówczas uruchamia s i ę p ro g ra m pomocniczy UNITRANS ( )
K t ó r e g o z a k o ń c z e n i e s y g n a l i z o w a n e . j e s t napisem NTL
L IS P 1 :
- 29 -
N a le ży wtedy u s t a l i ć w e j ś c i e , z k t ó r e g o b ę d z i e wprowadzany p ro g ra m z a p i s a n y w j ę z y k u AWIK o r a z w y j ś c i e , na k t ó r e b ę d z i e s i ę wyprowadzać t e k s t b ę d ą c y r e z u l t a t e m t r a n s l a c j i . J e ś l i s ą t o u r z ą d z e n i a o numerach 1 i 2 , wtedy p i s z e s i ę
CSET (NOEINP 1) CSET (NONOUT 2)
a n a s t ę p n i e z a k ł a d a s i ę do u r z ą d z e n i a n r 1 taśm ę z programem tłumaczonym i p i s z e s i ę
TRANS1 ( )
Po z a k o ń c z e n i u p i e r w s z ć g o p r z e b i e g u t r a n s l a c j i z o s t a j e wypro
wadzony n a p i s (SECOND PASS,). •
T r a n s l a t o r czek a wtedy na ponowne p o d ł o ż e n i e taśmy od p o c z ą t k u D ru g i p r z e b i e g r o z p o c z n i e s i ę po n a p i s a n i u na d a l e k o p i s i e
znaku c r l u b l f .
Poprawne z a k o ń c z e n i e t r a n s l a c j i s y g n a l i z o w a n e j e s t na pisem (END OE TRANSLATICN)
LTSP1:
B i b l i o g r a f i a
W .W ojc iechow sk i, J . B a r t o s z e k , J . M a r t i n e k ,
O r g a n i z a c j a l o g i c z n a kompu tera w i r t u a l n e g o V.TK, I n s t y t u t A u to m a ty k i P . P . , P o zn ań , l i s t o p a d 1975.
P r a c a z b i o r o w a . System prog ra mow an ia m in i k o m p u te ra K202 w j ę z y k u LIS? 1-5» I n s t r u k c j a p r o g r a m i s t y , I n s t y t u t A u to m a ty k i P . P . , P o zn ań , l u t y 1974.
J . M a r t i n e k , T r a n s l a t o r u n i w e r s a l n y s t e r o w a n y s k ł a d n i I n s t y t u t A u to m a ty k i P . P . , P o zn ań , l i s t o p a d 1975.
■ |
D o d a t e k A
Ze względu na t o , że pewne z n a k i k t ó r e mogą być drukowane p r z e z u r z ą d z e n i a w y j ś c i a i s t n i e j ą c e w s y s t e m i e MERA 300 n i e w y s t ę p u j ą w k o d z i e ISO, z e s t a w i o n o j e p o n i ż e j w t a b e l i u k a z u j ą c e j o d p o w i e d n i o ś ć znaków kodu ISO i zn a
ków drukowanych, p r z e z maszynę FACIT o r a z d r u k a r k ę DZM 180 . - 3 1 -
1
ISO I EACIT 1 DZM 1 8 0
•! § I
5 (apostrof) m 5 (apostrof)
* O
. < ?
< .
—
c* -
.(
s/ (
. ) • m3 )
[ Ł ■ Z
J ę
i
N
- 32 -
D o d a t e k B
D o d a te k t e n z a w i e r a p r o g ra m p r z y k ł a d o w y , k t ó r y z a m i e n i a l i c z b ę b i n a r n ą m i e s z c z ą c ą s i ę w dwóch b a j t a c h na d o d a t n i ą l i c z b ę c a ł k o w i t ą i wyprowadza j ą na maszynę do p i s a n i a .
P ro g r a m j e s t t a k n a p i s a n y , że może być t r a k t o w a n y j a k o podprogram u a k t y w n i o n y p r z e z r o z k a z " s k o c z ze ś l a d e m " .
L i c z b a b i n a r n a k t ó r a ma być z a m i e n i o n a n a d z i e s i ę t n ą powinna
\
być u m i e s z c z o n a w m i e j s c u o n a z w ie KR0B1.
K o l e j n e c y f r y l i c z b y d z i e s i ę t n e j u m i e s z c z o n e s ą w p a m i ę c i pocz ąw sz y od m i e j s c a o naz w ie BUP i wyprowadzane n a z e w n ą tr z p r z e z p r o c e s o r z e w n ę t r z n y o n a z w ie 2.
Z e r a n i e z n a c z ą c e s ą r ó w n i e ż wyprowadzane.
[SEG 0 2 7 J (p z l)
[RES 2 j
[COM USTAWICIE WSKAŹNIKA PĘTLI I ZAWARTOŚCI MIEJSCA MOL ZA;
SA Y/SKP;
LA Y/SKAZ;
SA MOL;
(ETC1) LA Y/SKP;
ADS
SA WSKP;
[COM SPRAWDZENIE CZY ZAKOŃCZONO PRZETWARZAŃ 13 LICZBY j LAS 6;
CO Y/SKP;
JG;
JPS ETC4; . ='
. [COM ZEROWANIE MIEJSCA O NAZWIE WARTOŚĆ ]
•ZA;
SA WARTOŚĆ;
[COM OBLICZANIE KOLEJNYCH CYFR LICZBY DZIESIĘTNEJ ] LA I MOL; v . . ’
( ETC 2) CO KROBI;
JG;
J I ;
J P S . ETC3;
LX Y/ARTOSC;
XLS 1 ; ;
SX Y/ARTOSC;
AD I KOD;
(ETC?) SU I MOD;
NA;
ADS 1 ; AD KROBI;
SA KROBI;
[COM UMIESZCZENIE W BUFORZE BUF KODU ISO CYFRY KTÓRA MA BYC WYDRUKOWANA j
LAS 4-8 ; AD WARTOŚĆ;
- 34 -
OPT CHA;
LX WSKP;
SA X KOM MINUS 1;
[COM ZMIANA ZAWARTOŚCI MIEJSCA MOL ] ZA;
LAS 2 J AD MOI);
SA MOD;
JPS ETC 1;
(ETC4) LA CRLF;
SA KOM PLUS, 5;
SME 2 KOM;
WAN 2 KOM;
J P I PZL;
(BUF) [RES 10 j
(WSKP) ■ [RES ¿ ]
(MOD) [RES 2 J
(WARTOŚĆ)[RES 2J
(KR031) [RES 2]
(CRLF) PAR 06412 B B;
(WSKAŻ) PAR Li 0000 B B;
(L10000) PAR 10000 3 B;
(LI 000) ■ PAR 1000 B B;
( L I 00) PAR 100 3 B;
(L10) PAR 10 3 B;
' (L1) PAR 1 B B;
[PROGENDJ