P ro g ra m o w a n ie m ik ro k o m p u te ró w PL2I P a m ię c i na d ys k ac h o p ty c zn y c h
Spis treści ro c z n ik a 1 9 8 4
mm
i ą P « l M
Nr 1 2
Miesięcznik Grudzień
R ok XIX 1 9 8 4
O rgan K o m ite tu In fo rm a ty k i M NSzW iT oraz K o m itetu N aukow o-Technicznego NOT ds. In fo rm a ty k i
KOLEGIUM REDAKCYJNE:
Mgr in ż. Z b ig n iew G LUZA, dr inż. W a
cła w ISZK O W SK I, m gr T eresa J A B ŁO ŃSK A (sek retarz red a k cji), W ład y
sła w KLEPACZ (zastępca red ak tora n a czeln ego), p ro i. dr hab . L eon Ł U K A SZEWICZ (redaktor n a czeln y ), m gr inż.
A n d rzej J. PIOTROW SKI, dr Inż. J a nusz ZALEW SKI
STALE W SPÓ ŁPRACU JĄ:
Mgr in ż. W itold ABRAMOWICZ (S z w a j
caria), m gr A dam B. EM PACIIER, mgr K atarzyna ISA AK, dr J acek OWCZAR- CZYK, m gr M arek SOBCZYK, dr A n drzej SZ A Ł A S, dr Jakub TAT A R K IE
WICZ, m gr inż. T eresa WILCZEK
PRZEW ODNICZĄCY RADY PROGRAMOWEJ:
P rof. dr h a b . T ad eu sz PECIIE
M ateriałów n ie z a m ó w io n y ch red ak cja n ie zw raca
R edakcja: 00-041 W arszaw a, u l. J a s
na 14/16, p o k . 243 i 244, te l. 27-71-40 lub 26-82-61 w . 184
Z akł. G raf. „ T am k a” . 2305. Obj.
4,0 ark. d ruk. N ak ład 4250 egz. T-39.
IN DEK S 36124
Cena egzem p larza zł 75,—
P ren u m erata roczna zł 900,—
3 WYDAWNICTWO S
SIGMA
00-950 Warszawa skrytka pocztowa 1004
ul. Biała 4
1984
W NUM ERZE: S tro n a
SPIS TR EŚC I ROCZNIKA 1984
■PLZ — język pro g ram o w an ia m ikroprocesorów (1) W i e s ła w W i l c z y ń s k i
U n iw ersalne asem blery dla m ikro k o m p u teró w R y s z a r d K. K o tt , K r z y s z t o f S z w e d
M etody rea liza cji pro g ram ó w uruchom ieniow ych dla m ikroprocesorów R y s z a r d R y b u s
P ro b lem y p ro g ram o w an ia m ikroprocesorów R a fa ł Z i e l e n i e w s k i
m ikroK L A N
— NS 32032 — m ikroprocesor 32-bit.owy
— W spółpraca z n ap ęd em dysków elastycznych PLx45D (1)
— M ik ro k o m p u ter IMZ-80
— P ro g ra m a to r pam ięci EPROM 2716
— S ch em at ZX81 Z K R A JU
— R ada ds. ZSTO. S ek cja SARP ZE ŚW IATA
— P am ięci na d yskach optycznych
— N ajeźdźcy ze w schodu TERM INOLOGIA
— Czy nasze poglądy są k om patybilne?
1
4
8
19 11
21
23
III okl.
W N A JBLIŻSZYCH NUMERACH:
® A rfu r K rąpski o P A SC A L U M T+
• Z b ign iew B a n a sik o n orm ie IEEE — a r y tm e ty k a zm ien n o p r zecin k o w a
• R yszard K ott o BA SIC U dla m ik ro k o m p u teró w
O W aldem ar K ap u ścik o p ro jek to w a n iu sie c io w y c h baz d a n y ch
• K onrad J a b ło ń sk i o ję z y k u BCPL
• W acław Iszk ow sk i o m ech a n izm a ch k o m u n ik a cji
• M arek D zied zic, K rzy szto f P ery cz i J erzy W iliń sk i o em u la to rze E6RM-E
• A n d rzej I. L itw in iu k o k o m p ila to rze LOGLANU dla MERY 100
• Z b ig n iew K ierzk o w sk i i J a cek M ału szyńsk i o w sp ó łb ieżn ej a k tu a liz a c ji bazy danych
• Jan u sz Z a lew sk i o ten d e n c ja ch w d zied zin ie k o m p u tero w y ch sy ste m ó w stero w a n ia w 1983 roku
'W IE S Ł A W W IL C Z Y Ń S K I : ,
•¡V > 'V*
W a rs z a w a i .'■>
PLZ — język p ro g ram o w an ia m ikroprocesorów (1)
Do n ie d aw n a p rogram iści z a jm u jąc y się oprogram ow aniem m ik ro k o m p u teró w m ieli do w y b o ru d w a języki p ro g ra m o w an ia: BA SIC i języ k asem blera. S y tu a c ja pow oli zm ie
nia się i obecnie dostępne są języki w ysokiego poziom u k la sy PASCA LA . Ję zy k P L Z je st do niego bardzo zbliżony, jeżeli chodzi o s tru k tu r y d anych i sy n ta k ty k ę , choć w po ró w n a n iu z PASCA LEM m a o g raniczenia dotyczące o p e ra cji zm iennoprzecinkow ych, n ie k tó ry ch operacji n a re k o r d ach oraz o peracji w e jś c ia -w y jś c ia .
P ra c e n a d tym językiem zostały zapoczątkow ane w r o ku 1977 przez firm ę ZILO G . Z am ierzeniem p ro jek tan tó w nic było stw orzenie u niw ersalnego języka w ysokiego p o ziomu, ale języka p ro g ra m o w an ia d la m ikroprocesorow ych system ów ste ru jąc y ch , w k tó ry ch obliczenia num eryczne nie sta n o w ią o całości zadania. Ich celem było opraco w a
nie ję zy k a n iezbyt rozbudow anego, ale łatw o ro zsz erza ln e
go i um ożliw iającego otrzy m an ie efektyw nego kodu m a szynowego dla m ikroprocesorów Z80 i Z8000.
N iew ątp liw ą zaletą języka P L Z je st oddzielna k o m p ila
cja m odułów , co um ożliw ia p rogram iście ko n tro lę n ad p rze
pływ em in fo rm ac ji pom iędzy m odułam i oraz przyspiesza proces kom pilacji.
STR U K TU R Y DANYCH
K ażdy o b ie k t ¡w P L Z m a sw ój id e n ty fik a to r (nazwę), k tó ry stan o w i ciąg liter, cyfr i znaków p o d k reślen ia „—”, zaczynający się od litery . N azw y m ogą być dow olnej d łu gości,, ale w w iększości im p lem e n ta cji 31 pierw szych z n a
ków je s t znaczących (znane są im p lem en tacje, w k tó ry ch 127 pierw szych znaków je st znaczących). S ep a ra to ra m i (o całkow icie rów n o w ażn y m znaczeniu) śą: zn ak i spacji, p ow rotu k a re tk i, zm iany w iersza, zm iany strony, przecinek, śred n ik , d w u k ro p e k i znaki ta b u lac ji.
K ażdy o b ie k t z a d ek laro w a n y w p ro g ram ie m a sw ój typ:
p ro sty (ang. sim ple), tablicow y (ARRAY), rek o rd o w y (RE- CORD) lu b zdefiniow any przez uży tk o w n ik a (TYRE). Do typów p ro sty ch zaliczam y:
S H O R T -IN T E G E R — liczby ca łkow ite z za k resu [— 128, + 127] .
BYTE — Liczby ca łkow ite z zakreSu [0, +255]
IN TEG ER — liczby całk o w ite z zak resu [—32768, H-32767]
WORD — liczby całkow ite z zak resu 0, 65535 typ w skaźnikow y (adres obiektu).
T ypy p ro ste calkow itoliczbow e m ogą być u ży te do p rz e ch ow yw ania kodów znaków' alfan u m ery czn y ch . W zależ- riości od ty p u ob iek tu m ożna przechow ać jed en lub dw a znaki, np.:
C li AR 1 B Y T E := 'A ' 1 zm ien n a CHARi_l, p rzech ow u je kod lite r y A!
C H A R .2 W O R n := 'A li' ! zm ien n a C H A R .2 p rzech o w u je n ap is AB!
v
1. CONSTANT J. TRUE,!= XFF J. FALSE 1= 0
0. A_MINUS_|9 i= '»'-li ^
5 . 8UFFER_S1ZE s= 16»
6. D 0 U B U _ B U F F E R _ S 1 Z E 1= BUFFER_SIZE»J
Przykład 1
W P L Z istn ieje m ożliwość odw ołania do stałych, k tó ry ch typ je st zgodny z typem każdej zm iennej całk o w itej. S tałe
tw orzy się przez zad ek laro w an ie. W lin ii 1 p rz y k ła d u 1 podano zapow iedź d e k la ra c ji stałych! W lin ii 2 sta łe j o n a zw ie TRUE nad an o w arto ść szesn astk o w ą (znak %), w lin ii 3 sta łe j o nazw ie FA LSE — w artość 0, a w lin ii 4 sta łe j A -M IN U S -10 — w artość kodu lite ry A pom niejszoną o 101).
J e d n ą z m ożliw ości bud o w an ia złożonych s tr u k tu r danych je st tw orzenie tablic. T ab lica je st o b iektem zbudow anym ze zm iennych tego sam ego typu, p o siad ający ch w spólną nazw ę. O p erac ja dostępu do elem e n tu ta b lic y n a stę p u je przez w sk az an ie jego indeksu, k tó ry m oże być dow olnym w y rażen iem ty p u całkow itoliczbow ego, np.:
COUNT ARRAY [4 SIIORT_JNTEGER]
CHAR A RRAY [72 BYTE]
HELP SH ORT_INTEGER H E L P:— COUNT [31 HELP: —COUNT [I + K |
T ab lica o w ym iarze N m a w sk aźn ik i z, zak resem [0, N—1], la k w ięc o sta tn i elem e n t tablicy CHAR m a indeks 71. Ję zy k P L Z nie n a k ła d a ograniczeń co do liczby w y m ia ró w tablic, m ożliw e je st d ek laro w an ie ta b lic d w u -, tró j- i w ielo w y m ia
row ych, np.:
SCORE A R RAY [5,7,4 INTEGER |
P ow yżej zadek laro w an o 140 elem entów ty p u IN TEG ER o w spólnej n azw ie SCORE.
W odróżnieniu od tablic, re k o rd je st s tru k tu rą p o zw a la
jącą g rupow ać obiek ty różnych typów . K ażdy ze sk ła d n i
ków re k o rd u nazyw a się polem re k o rd u . P rzykładow o:
M ISSING PERSON RECORD [NAME ARRAY [25 BYTE]
BIRTHDATE RECORD [MONTH, DAY, YEAR BYTE], SEX BYTE, HEIGHT,
VVEIGHT BYTE]
— zadek laro w an o re k o rd ' o nazw ie M IS S IN G -P E R S O N , pierw szym polu nazw an y m NAME i p rz e d staw ia ją cy m ta blicę 25 elem en tó w ty p u BYTE, d ru g im polu o nazw ie B IRTH D A TE stan o w iący m re k o rd (o trzech polach MONTH, DAY i YEAR ty p u BYTE),- trzecim polu o n azw ie S EX ty pu BYTE o raz cz w arty m i p ią ty m (H EIG H T i W EIG HT) ty p u BYTE. O dw ołania do poszczególnych pól re k o rd u m ogą być w y k o n a n e ^ ja k do każdego o biektu tego typ u . O p erac ja ta n a z w a n a je st selek cją i polega n a p o d an iu n azw y r e kordu, a n a stę p n ie nazw y pola poprzedzonego k ro p k ą, np.:
M ISSING_PERSON.SEX:=*M EN __
M ISS IN G _P E R S O N .\TA M E [I]:” 'I C
M ożliwe je st d ek laro w an ie ta b lic y rek o rd ó w , co bardzo u ła tw ia op ero w an ie dużym zbiorem rek o rd ó w tego sam ego ro d zaju , np.:
M ISSIŃG PERSON ARRAY [2000 RECORD [D eklaracja rekordu]]
D efiniow anie now ych typów polega n a odw ołaniu do in nych typów , np. w ym ienionych w cześniej. D efinicja zaczy
na się słow em TY PE, po k tó ry m n a s tę p u je n az w a i opis typu, np.:
TYPE COLOR BYTE CHAR BYTE
PART RECORD [NUMBER WORD, LO CATION_CODE BYTE, COST, P R IC E _L IST W ORD],
P ow yżej zdefiniow ano trzy now e ty p y ĆOLOR, CHAR i PA R T . P rz y k ła d d e k la ra c ji zm iennych tych ty p ó w w y g lą
da następ u jąco :
') N u m eracja w ierszy n ie jest ele m e n te m program u
RED, ORANGE, YEŁLOW COLOR
CURRENT_CHAR CHAR
PICTURE ARRAY 1150,300 COLOR)
N E W _P A R T PART
T yp w skaźnikow y
N iekiedy w ygodniejsze je st użycie w skaźnika zm iennej (tzn.
jej ad resu lub d esk ry p to ra ), a n ie sam ej zm iennej. Do tego celu przew idziano w P L Z typy w skaźnikow e. W d ek larac ji zm iennej ty p u w skaźnikow ego należy podać nazw ę zm ien
nej, o p e ra to r w skaźnikow y fy*>” oraz typ w skaźnika. W artość zm iennej ty p u w skaźnikow ego jest n ad a w an a jej przy uży
ciu o p era to ra # .
1. CHAR -.BYTE
2. BYTE_POINTER -.BYTE
3. WORD-POINTER nhORD
<1. 3H0RT-P0INTER -.SHORT.
5, CURRENT-CHAR BYTE
6. CU RR EN T- CH AR js •A' 7. CHAR js «CURRENT -CHAR S. N£ XT— CHAR JS CHAR-I 9. BY TE -P OI NT ER :* NIL
P rzyk ład 2
W lin iach 1, 2 oraz 3, 4 p rzy k ła d u 2 za deklarow ano trzy zm ienne o różn y ch ty p ach w skaźnikow ych: BYTE, WORD, S H O R T -IN T E G E R . Z m ienną o nazw ie C U R R E Ń T-C H A R ty p u BYTE za d ek laro w an o w linii 5, zaś w linii 6 nadano tej zm iennej w artość kodu litery A. W k o le jn ej linii zm ien
nej w skaźnikow ej B Y T E -P O IN T E R n adano w artość w sk a
zu jącą (adres) C U R R E N T-C H A R (w skazuje lite rę A). In s tru kcja p rzy p isa n ia w lin ii 8 n a d a je zm iennej N E X T -C H A R w artość ró w n ą kodow i lite ry A, zaś w o sta tn ie j linii p rz y kładu zm iennej w skaźnikow ej B Y T E -P O IN T E R o typie wskaźnikowyhn BYTE — w artość początkow ą NIL, je d y n ej sta łe j ty p u w skaźnikow ego d o stęp n ej w PLZ. S ta ła NIL je st zgodna z każdym ty p em w skaźnikow ym i nie w sk azu je
żadnego o biektu w p rogram ie. v
Z m iennej typu w skaźnikow ego m ożna nadać w artość po
czątkow ą, ró w n ą adresow i pierw szego znaku w skazanego tekstu, np.:
C H A R =:#'D O W O L N Y TEKST'
T yp zm ien n ej CHAR je st zgodny z typem każd ej zm iennej w skaźnikow ej dotyczącej o biektu o ro zm iarze b ajtu .
D ek laro w an ie zm iennych ty p u w skaźnikow ego je st m o
żliw e dla w szystkich zm iennych ty p u prostego, w łączając zm ienne ty p u w skaźnikow ego, a w ięc m ożliw y je st typ w skaźnikow y zm iennych ty p u w skaźnikow ego, np.:
BY T E _PO IN T ER ^ B Y T E := # A L A
POINTER—TO—BYTE POINTER/N B Y T E := #A L A
W p ierw szej linii zad ek laro w an o zm ienną w skaźnikow ą B Y T E -P O IN T E R do zm ien n ej ty p u BYTE, o w artości po
czątkow ej ró w n e j ad reso w i zm iennej ALA. W k o lejn y m w ierszu zadek laro w an o zm ienną w skaźnikow ą do zm iennej typu w skaźnikow ego, o w arto ści początkow ej’ ró w n e j a d re sowi zm iennej w skaźnikow ej ty p u BYTE p o siad ającej w a r
tość ró w n ą adresow i zm iennej ALA.
Z m ienne ty p u w skaźnikow ego m ogą w ystępow ać ja k o ele
m e n ty ta b lic lu b rek o rd ó w , np.:
IN T _P T R A RRAY [100 INTEGER]
MESSAGE RECORD [LENGH BYTE, C H A K -PT K /N BYTE) Pow yższa d e k la ra c ja pow oduje utw orzenie n astęp u jący c h obiektów (w naw ia sa ch podano ty p obiektu):
n ą A -P T R ty p u w skaźnikow ego o typie A -10-B Y T E , i n a r dano je j w arto ść (adres) zm iennej A, a w ięc tablicy A -10-B Y T E . T ypy obiektów A, # A i A -P T R są n a s tę pujące:
A /A 10 BYTE/
# A /A _10_B Y T E /
•\_ P T R / /'\\_ I 0 BYTE/
1. ’ YPE
A _ | a _ B Y T E A R R A V tle BYTE) i. I N T E R N A L
1. A A _ 1 0 _ B Y T E
5. A . P T R i A _ l i — B Y T E ci
P rzyk ład 3
Często zdarza się, że w ygodniej je st przeszukiw ać tablicę w sposób liniow y (tj. przy użyciu zm iennej ty p u w skaźniko
wego w sk azu jącej kolejno każdy elem e n t tablicy), niż b a r dziej kosztow ną m etodą in d ek so w an ia elem entów . M ożna to zrobić p rzy użyciu n a s tę p u ją c e j d ek larac ji:
A ARRAY [10 BYTE]
B _ P T R A B Y T E : = # A [0|
Z m ienna B -P T R może w skazyw ać k ażdy o biekt ty p u BYTE, a w ięc i elem e n t tablicy A. W dru g iej linii n a d a n o mu w artość początkow ą ró w n ą ad reso w i pierw szego elem entu tablicy A. Na zm iennych ty p u w skaźnikow ego m ożna w y konać tylko dw ie operacje (oprócz in stru k c ji przypisania), zw iększania lub zm niejszenia ich w a rto ś c i’ o ro zm iar obie
ktu, k tó ry je st w sk azy w an y (INC i DEC). W pow yższym . przykładzie, gdzie w artość zm iennej B -P T R je st / ó w n a adresow i pierw szego elem e n tu tablicy A (o indeksie 0) w y
k onanie operacji:
B P T R :—INC lS_PTIt
pow oduje, że w artość B -P T R sta je się ró w n a adresow i k o lejnego elem e n tu tablicy A. W ykonanie operacji:
B —PTR: —DEC I5_PTR
pow oduje ponow ne n a d a n ie zm iennej B -P T R w artości ró w nej adresow i pierw szego elem en tu ta.blicy A.
1. T Y P E
2 . S T R I N G R E C G R O ( L E N C T H B Y T E , C H A R S -.BYTF.1 3. I N T E R N A L
1. N E H H E S S A G t S T R I N G 5. M E S S A G E A R R A Y tleef S TRING]
M E S - P T R -.STRING 7. H E S . P T R 1= » N E W M E S S A G E 6. M E S . P T R ¡i « M E S S A G E ! » ]
P rzykład 1
W p rz y p a d k u użycia zm iennej ty p u w skaźnikow ego do określen ia re k o rd u należy także utw orzyć now y typ. Roz
w ażm y przy k ład 4. W lin ii 2 zdefiniow ano n ow y ty p STR IN G , a w n astęp n y c h lin iach zadek laro w an o zm ienną NEW M ESSAGE ty p u STR IN G i tablicę 1000 elem en tó w typu S TR IN G (czyli rekordów ). Z m ienną w skaźnikow ą do ele
m entów ty p u STR IN G zadek laro w an o w lin ii 6, a w linii 7 nadano jej w artość ró w n ą -a d re so w i zm iennej NEW M ESSA
GE, zaś w k o le jn ej linii, — w artość ró w n ą ad reso w i p ie rw szego elem en tu z tablicy M ESSAGE.
1. T Y P E
2. N O D E - P T R i N O D E
3. N O D E R E C O R D t f I E L 0 _ l B Y TE, F I E L 0 _ 2 I N T E G E R , L I N K N O D E - P T R ] 1. INTERNAL
5. D A T A - B A S E A R R A Y tieflC N0DE1
P rzyk ład 5 * INT_PTR/99/ (A lN T E G E R )
IN T_PT R /99/ / \ (INTEGER) MESSA G E.C H A R _PTR (-ABYTE) M ESSAG E .C H A R _PT R / \ (BYTE) R ozw ażm y p rz y k ła d d ek larac ji A ARRAY [10 BYTE]
A _P T R A A R R A Y [10 BYTE)
P ow yższa d e k la ra c ja , choć legalna, nie m a sensu — p o niew aż dw a o b ie k ty „ARRAY [10 B Y TE]” są różnych ty pów i A -P T R n igdy nie będzie w skazyw ał ta b lic y A. P r a w idłow y sposób ro zw iązan ia tego pro b lem u polega n a zde
finiow aniu now ego ty p u (p rzykład 3), W lin ii 2 z a d ek laro w ano now y ty p A -10-B Y T E , zaś w linii 4 zm ienną A tego typu. W o sta tn ie j linii p rzy k ła d u 3 zadek laro w an o zm ien
T ypu w skaźnikow ego m ożna użyć do budow y s tru k tu r listow ych, ja k w p rzy k ła d zie 5. W rez u lta c ie pow yższych d efin icji i d ek larac ji, pole L IN K każdego, z rek o rd ó w NO
DE może w skazyw ać n astę p n y re k o rd ty p u NODE. W po
d an y m p rzy k ład zie w idoczne je st jedyne dopuszczalne od
stępstw o od g en e raln e j reg u ły , że odw ołanie do o biektu lub ty p u m usi być poprzedzone jego d efin icją lub d e k la ra c ją . W linii 2 zdefiniow ano zm ienną w skaźnikow ą typu NODE, k tó ry je st zdefin io w an y dopiero w lin ii 3.
Zgodność typów
Zgodność typów w języku PLZ polega n a spełnieniu je dnego z n a s tę p u ją c y c h w aru n k ó w :
® dw ie zm ienne ty p u definiow anego przez u ży tk o w n ik a są zgodnego ty p u w tedy, gdy m a ją tę sam ą «nazwę ty p u
• dw ie zm ienne ty p u prostego, ale nie w skaźnikow ego (SH O R -IN T E G ER , BYTE, WORD, INTEGER), są zgodnego ty p u w tedy, gdy m a ją tę sam ą nazw ę typu
® tablice lub rek o rd y m a ją ty p zgodny w tedy, gdy są d ek laro w an e w tej sam ej liście d ek larac ji
® ‘dw ie zm ienne ty p u w skaźnikow ego są zgodnego typu w tedy, gdy zw iązane są z o b iektam i o zgodnych typach.
T Y ? E /
b u f f e r a r r a y ci2 a b y u;
d a t a R E C O R D [ D A Y » M O N T H ? Y E A R BYTE]
I N T E R N A L
A.li B U F F E R
t.,D A R R A Y ¡128 B Y 7 C )
F B U F F E R
F A R R A Y 1)28 8YTEI
G D A T A
H D A T A
I,J R E C O R D ¡DAY, M O N T H , Y E A R BYTE) K R E C O R D ¡DAY, H O N Y M , Y E A R B YTE1
K ażde dw a obiekty, k tó re nie sp e łn ia ją jednego z w yżej w ym ienionych w a ru n k ó w n ie są zgodnego typu. W p rz y kładzie 6 n a s tę p u ją c e zbiory za w ierają zm ienne o zgodnych typach: (A,B,E), (C,D), (G.H), (I,J), (F), (K).
D eklarow anie i in ic jo w an ie zm iennych
P oniew aż zm ienne n ie są sta łą częścią pro g ram u , na p ro gram iście spoczyw a obow iązek d ek laro w an ia zm iennych, z a nim n a stą p i odw ołanie do nich. D eklarow anie polega n a u- życiu tzw. słów zasięgu (ang. scope w ord) i podaniu listy nazw . Słow am i zasięgu nazw y są n astę p u ją c e słow a języka:
EX TER NA L, GLOBAL, IN TER N A L i LOCAL. P rzy d e k la ro w a n iu zm iennych pro sty ch , ta b lic i rek o rd ó w m ożna n a dać im w arto ść początkow ą przez użycie in stru k c ji p rz y pisania, (np.:
IN TERN AL X INTEGER: —125
GLOBAL COUNT, LIMIT BYTE:=> [0. 233]
IN TERNAL LOMASK W O R D i-iiO O F F IN TERN AL Cl, C2, X B Y T E :— ('A', 'U'|
W ostatnim i w ierszu, zm iennej X nie n a d a je się w artości początkow ej. M ożliw e są też inne w a ria n ty n ad a w a n ia w a r
tości początkow ej, np.:
IN TERN AL A .B.C , IN T E G E R :- (1, ?,
W tym p rzy p a d k u , zm ienna B nie m a n ad a n e j w artości po
czątkow ej, a d la d ek larac ji:
IN TER N A L A ,B ,C ...X IN TEG E R :— ¡1.3,...]
zm ienna A = l, zaś zm ienne B, Ć do X o trz y m u ją w a r tość 3.
Inicjo w an ie tablic w ygląda podobnie, przy czym w p rzy-
■padku tablic w ielow ym iarow ych — w artości początkow e w ym ienione po sym bolach p rzy p isa n ia są n ad a w an e e le m entom tablicy w edług zm ieniającego się indeksu w iersza.
P rzykładow o — po d ek larac ji: IN TERN A L L ETTER A R RAY [2,2 BYTE] : = [’A ’, ’B \ ’C ’, ’D']
k olejnym elem entom tablicy . zostaną n ad a n e n astę p u ją c e w artości:
LETTER |),0! = 'A ' , LETTER ]0,I| — 'B' LETTER ! 1,0] = 'C' , LETTER [1,1] = 'D'
W poniższym przykładzie:
IN TERN AL X ARRAY [8 BYTE] : = . [5,6,7]
tylko trz y pierw sze elem e n ty m a ją n ad a n e w artości A [0] = 5 , A [1] , = 6 , A [2] = 7 ; pozostałe elem en ty są n ie określone.
Zapis:
IN TERN AL A ,B ARRAY [103 BYTE] [[] , [0...]]
pow oduje, że tablica A nie m a n ad a n y c h w arto śc i począt
kow ych, zaś tab lica B m a w szystkie elem e n ty ró w n e 0.
W k o lejn y m przykładzie d e k la ra c ji połączonej z in icjo w a
niem:
IN TERN AL A ARRAY [HVORD] :=|125, 3*8, 75|
1.
5,j 4.
5.6.
7.
8.
9.lf . U . 1 2 .
P rzyk ład G
rozm iar tablicy jest u sta la n y przez k o m p ilato r [*] n a pod
sta w ie listy w artości początkow ych i będzie ró w n y 3 WORD, In icjo w an ie rek o rd ó w je st połączeniem in ic jo w an ia ty pów p ro sty ch i tablic, n a to m ia st zm ienne za d ek laro w a n e jako LOCAL oraz zm ienne o ty p ie zdefiniow anym przez uży tk o w n ik a nie m ogą być inicjo w an e w edług p rze d staw io nych zasad. N ad an ie im w artości może odbyć się tylko przez in stru k c ję p rzy p isa n ia w ciele p ro g ram u lub procedury.
PODSTAW OW E O PER A C JE
W P L Z n a s tęp u jące sym bole służą do oznaczenia działań arytm etycznych:
+ dla d odaw ania
— dla odejm ow ania lu b neg acji / dla dzielenia
* dla m nożenia
lvłOD dla o p era cji m odulo
ABS dla uzy sk an ia w artośoi bezw zględnej.
P onadto zdefiniow ano n a s tę p u ją c e o p era cje logiczne: AND, OR, XOR, NOT. P o niew aż języ k P L Z zapro jek to w an o do ce
lów stero w an ia, m a on n a s tę p u ją c e ograniczenia:
— sta n d a rd o w a o p era cja dzielenia da-je zaw sze w y n ik c a ł
kow ity np.: '
D/2 = 2 i (—5) 12 = —2
— nie je st kontro lo w an y n ad m ia r, ja k i może p o w sta ć w trak c ie w ykon y w an ia działań
— nie je st k o n tro lo w an e w y k o n an ie nieleg aln y ch o peracji np. dzielenie przez zero lu b X MOD O o raz przekroczenie zakresu indeksów tablicy
— nie m a żadnych fu n k c ji standardow ych.
TYPE
B-PTR -.BYTE N_PTR iNODE
NODE RECORD ¡FI BYTE, LINK N_PTR) INTERNAL
W WORDt B BYTE I INTEGER BP B_PTR! RP N_PTR K 1« K O R D O BP :* B— PTR(RP)
B :s BY T E ( H O R D t B P ) - H O R D t R P ) >
BP := B_ PT R( HO RD(BP)*HORD<ABS(I>)) H := w OR HORDtB)
K !* HORDtRPi.Fl) P r z y k ł a d 7
N iekiedy zachodzi konieczność użycia — w w y rażen iu lu b in stru k c ji p rzy p isa n ia — zm iennych, k tó re są różnych typów . W n ie k tó ry ch językach k o n w ersja typów je s t doko
n y w an a autom atycznie, zaś w p rzy p a d k u języ k a P L Z p ro g ram ista m usi św iadom ie dokonać tej o p eracji. Z defin io w ano n a s tęp u jące je d n o arg u m en to w e o p e ra to ry k o n w ersji typów : BYTE, SHO RT_ INTEG ER, WORD, INTEG ER, d e fin ic ja typu. O p eracje k o n w ersji zilu stro w an o w p rz y k ła dzie 7. W PLZ nie je st dopuszczalna k o n w ersja ty p ó w s tr u k tu ra ln y c h (tablicow ych i rekordow ych).
TY P E
fc-REl R E C O R O ¡FI B Y T E , F2, Fi i R _ « t C ) I N T E R N A L
A A R R A Y ¡1*6 R_R E C )
B R - R E C
I I N T E G E R 1« » M O R A G E - 3 I Z E H O R D H U H t L T B B Y T E
S T O R A G E — S I Z E 1= S l Z E C F t A ) ł S I Z E n F < B ) t 5 ! I E O F t ; >
¡JUMELT3 S I Z E O F ( A ) / S I Z E B F ! A | M )
Przykład 8
W ielkość o bszaru w yrażonego w b ajtac h , zajm ow anego przez zm ienne ty p u prostego, zdefiniow anego przez u żytko
w nika, lu b stru k tu ra ln e g o — może być określo n a przy użyciu o p era to ra SIZEO F. W ynik użycia o p e ra to ra SIZEO F należy tra k to w a ć jako sta łą ze w szystkim i tego k o n se k w e n cjam i (p rzykład 8).
In s tru k c ja p rzy p isan ia w P LZ może być zap isan a ■ n a s tę pująco:
z m i e n n a : = z m i e n n a + w y r a ż e n i e z m i e n n a + = w y r a ż ę . : i e
Ję zy k P L Z nie m a w b u dow anych o p era cji w e jśc ia -w y jś
cia. P ro je k ta n c i ję zy k a zostaw ili pod tym w zględem pełną sw obodę użytkow nikom , dołączając jed y n ie do d o sta rc za
nego k o m p ilato ra bibliotekę p rocedur w ejścia-w y jścia um o
żliw iających w m ia rę sta n d a rd o w ą obsługę typow ych u rz ą dzeń, jak : dyski, d ru k a rk i czy m onitor ekranow y.
R Y S Z A R D K. KOTT Instytut In form atyki P o lite c h n ik a W arszaw s ka
• 1
K R ZY S ZTO F S Z W E D
Instytut M a szyn M a te m a ty c zn y c h W a rs z a w a
U niw ersalne asem blery dla m ikrokom puterów
Podobnie, zapis
zm ien n a : = zm ien n a — w yrażenie je st ró w n o w ażn y zapisow i
zm ien n a — = w yrażenie.
Na p rzy k ład :
i + = i je st rów n p w ażn e i:= i+ i x — j est rów n o w ażn e Y :=y—i
G w ałto w n y rozw ój sp rz ę tu m ik ro k o m p u tero w eg o stw orzył za p otrzebow anie n a n arzęd zia u ła tw ia ją c e tw orzenie opro
g ram o w an ia w spom agającego dla now ych typów m ik ro p ro cesorów. K ażda firm a m ik ro k o m p u tero w a o fe ru je swoim klien to m tzw . system w spom agania (ang. developm ent sy stem ), w sk ład którego — nie licząc sp rzę tu — w chodzą n ajczęściej m .in. asem b ler i sy m u lato r oraz p ro g ra m u zd a
tn ia ją c y (ang. debugger). Je d n ak że, ta k i system je st u ży teczny ty lk o d la p rocesora d a n e j firm y . Z tego pow odu w w ielu ośrodkach, w yposażonych w ró żnorodny sp rz ę t m i
k ro k om puterow y, n a ogół pochodzący od różn y ch p ro d u centów , ro zw ija się u n iw e rsa ln e n arz ęd zia p rogram ow e nie zw iązane z k o n k re tn y m ty p em m ikroprocesora. D ążenie do u n iezależnienia o p ro g ram o w an ia w spom agającego od sp rz ę tu je s t w śród użytk o w n ik ó w ta k silne, że o statn io o p u b li
kow ano n a w e t propozycję un iw ersaln eg o eg zek u to ra czasu rzeczyw istego d la m ikrokom puterów !
Obecnie n a jb a rd z ie j rozpow szechnione są u n iw ersa ln e sy
m ulatory, u n iw ersa ln e asem b lery i u n iw e rsa ln e języki m i- k ro p ro g ram o w a n ia (asem blery m ik ro p ro g rąm o w an ia). W sy
stem ach tych w y sta rc zy podać definicję m ik ro p ro ceso ra (lub jego języka), aby au to m aty czn ie uzyskać .pożądany sy m u la to r lub asem bler. Oczywiście, dotyczy to rów n ież m ik ro k om puterów segm entow ych (ang. bit-slice m icroprocessors), d la k tó ry ch te n arzęd zia są szczególnie użyteczne. W ynika to stąd, że dla każdego now ego procesora, złożonego np.
z u k ład ó w serii AM 2900, konieczne je st uzyskanie nowego asem b lera (nie m ożna kup ić gotowego). Za pom ocą w y m ie
nionych n arzędzi je s t to szybkie i łatw e.
B iorąc pod uw agę cechy fu n k cjo n a ln e u n iw ersa ln y ch asem b leró w m ożna je podzielić na:
Mgr Int. RYSZARD K. KOTT ukończył w lflTO r. Wydział Elektroniki Politechniki Warszawskiej (kierunek — Informatyka).
Obecnie pracuje w II PW jako starszy asystent. Specjalizuje się w zagadnieniach związanych z automatyczni» produkcją opro
gramowania dla systemów mikrokompute
rowych.
— system y u n iw ersa ln e w zględem sp rzętu
— system y u n iw e rsa ln e w zględem sp rz ę tu i języka sy m bolicznego.
W p rz y p a d k u asem b lera un iw ersaln eg o w zględem sp rzę tu u ży tk o w n ik d efin iu je listę rozkazów danego m ik ro p ro ce
sora w ra z z m n em o n ik am i (ang. m nem onics). P ozostałe ele
m en ty sk ła d n i ję zy k a sym bolicznego są u sta lo n e (identycz
ne dla w szy stk ich g enerow anych języków ) lu b w y n ik a ją je dnoznacznie z listy rozkazów . N ato m iast, d la asem b lera u n i
w ersalnego w zględem sp rz ę tu i ję zy k a p o d aje się definicję listy rozkazów procesora, a także defin icję języka asem ble
ra, w ja k im chcem y program ow ać.
Z uw agi n a sposób im p lem e n ta cji om aw ian e system y m o
żna podzielić na:
— asem blery ste ro w a n e s tr u k tu r ą danych
— g en e ra to ry asem blerów .
W p o ró w n a n iu z asem b leram i zw iązanym i z k o n k re tn ą m a szyną, ase m b le ry u n iw ersa ln e odznaczają się m n iejszą e fe k tyw nością p rze tw arzan ia. K orzyść ' z zastosow ania o p ro g ram o w an ia u niw ersalnego polega na możliwości bardzo szybkiego u zy sk an ia now ego a sem b lera (w ciągu kilku dni) przy niew ielk im nak ład zie pracy.
ASEM BLERY U N IW ERSALNE W ZGLĘDEM SPRZĘTU Jeżeli nie m a o p ro g ram o w an ia u n iw ersalnego, to p rostym sposobem u zy sk an ia asem b lera skrośnego n a now y m ik ro procesor może być p rze ro b ie n ie innego asem b lera sk ro śn e
go. O ile fo rm a ty in stru k c ji procesorów docelow ych są ta kie sam e, p rze ró b k a o g ranicza się do w y m ian y tab eli m ne- m oników asem b lera (m nem onik, jego kod i p rzy p o rzą d k o w anie do g ru p y in stru k c ji). T ak a je st w łaśn ie zasada dzia
ła n ia n ajp ro stszy c h u n iw e rsa ln y c h asem b leró w skrośnych.
W szelako m o d y fik acja ta b eli m nem oników je st w tym p rzy p a d k u dokon y w an a autom atycznie, n a pod staw ie podanej defin icji m ikroprocesora.
Mgr, inż. KRZYSZTOF SZWED ukończył studia w 1983 r. na Wydziale Elektroniki PW.
Obecnie pracuje w Instytucie Maszyn Mate
matycznych w Warszawie.
K oncepcja tych system ów o p iera się n a spostrzeżeniu, że fo rm a ty in stru k c ji poszczególnych m ikroprocesorów 8-bito- w ych są n a ogól podobne lu b n a w e t id entyczne. N ajczęściej kod operacji za jm u je je d en b a jt pam ięci, po czym n a s tę p u je 1- albo 2 -b ajto w y a rg u m e n t. W ystarczy w ięc w y b rać od
pow iednio re p re z e n ta ty w n y zbiór fo rm ató w in stru k c ji, aby m ożna było definiow ać ró żn e listy rozkazów .
P rz y k ła d e m uniw ersaln eg o asem b lera skrośnego, d z ia ła ją cego na te j zdsadzie, je st system CASS8 i[5]. Z definiow ano w nim dziew ięć k las in stru k c ji w sk azy w an y ch przez typ a rg u m e n tu . T yp te n ok reśla jednoznacznie długość in s tru k cji i sposób adresow ania. W system ie istn ie ją p rocedury gen e ro w a n ia kodu dla każdej klasy (in stru k cje z te j sa m ej k la sy są p rz e tw a rz a n e jednakow o), Z definiow anie asem blera dla nowego m ik ro p ro ceso ra polega n a o pracow aniu ta beli m nem oników . 'D l a każdego m n em o n ik a należy podać odpow iedni kod o p era cy jn y i n u m e r klasy, do ja k ie j n a leży in stru k c ja .
S ystem taki, w sk u te k sw ej pro sto ty , m a isto tn e m a n k a m enty. W prow adzone uproszczenia (w CASS8 dopuszczono tylko jed en argum ent!) p ow odują, że in fo rm ac ja o try b ie a d re so w a n ia i (lub) uży w an y m re je strz e m u si być zakodo
w a n a w m nem oniku. W k onsekw encji może to prow adzić do n iew ygodnej zm iany m nem oniitów in stru k c ji. P onadto, przy założonej z góry liczbie typów in stru k c ji, k la sa opisy- w alnych m ikroprocesorów 8-bitow ych zaw sze będzie o g ra
niczona. N a p rzy k ła d — w CASS8 nie m ożna opisać listy rozkazów m ikroprocesora Z80, poniew aż zaw iera o n a in stru k c je 4 -b ajto w e (z 2 -bajtow ym i k odam i operacji).
Pow yższe w ady m ożna usunąć, je śli zezw olim y n a d efi
niow anie dow olnego fo rm a tu in stru k c ji m ikroprocesora. T aki system może być n a p ra w d ę u n iw ersa ln y w zględem sprzętu, tzn. nie m a p ra k ty c z n ie żadnych o g raniczeń n a k la sę d e
finiow alnego sprzętu. U żytkow nik n a jp ie rw d efin iu je nowy zbiór klas in stru k c ji, a n astęp n ie dopiero p o d a je definicje m nem oników w ra z z ich kodam i i n u m e ra m i klas. Z azw y
czaj nie w y stę p u ją klasy pred efin io w an e, toteż w celu dokonania d efinicji u ży tk o w n ik sam m usi podzielić listę rozkazów m ikroprocesora n a klasy. Za k ry te riu m podziału należy przyjąć zgodność fo rm a tó w ' in stru k c ji (p. ry s. 1).
i
A sem bler o ta k ich m ożliw ościach m usi być b ard z iej zło- żony niż o p isan y poprzednio. W szczególności, w system ach ste ro w a n y ch w czy tan ą s tru k tu r ą danych m usi istnieć m o
żliwość przech o w y w an ia in fo rm ac ji o zdefiniow anych k la sach in stru k c ji (np. w tab licy form atów ).
15 6 5 3 L 0
OP i REG OP
15 6 5 3 2 0
OP l BIT
15 8 7 0
OP OiSPL ‘
15 14 13 11 10 8 7 0
OP ■ REG OP DATA
Rys. i . F orm aty w y b ra n y ch in str u k c ji m ik roprocesora Z80; In s tr u k cje a i b m ożna z d efin io w a ć w jed n ej k la sie. O znaczenia: OP — k od o p era cji, REG — kod rejestru , BIT — n u m er b itu , D ISPL — p rzem ieszczen ie, D A T A — a rg u m en t bezpośredni
P rz y k ład e m g e n e ra to ra asem blerów dla dowolnego sprzętu je st system A SM /G EN [2]. W ykonanie d efinicji asem b lera , sk ła d a się w nim z n a stę p u ją c y c h etapów :
— zdefin io w an ia ad re so w a ln e j je d n o stk i p am ięci (zazw yczaj jeden bajt)
— podziału listy rozkazów p rocesora n a k lasy
— zdefiniow ania klas in stru k c ji
— o k reślen ia sym bolicznych nazw re je stró w
— 7definiow ania (dla każdej klasy) m nem oników w ra z z od p ow iadającym i im k odam i o p eracji.
Z d efiniow anie k lasy polega na o kreśleniu:
. — długości in stru k c ji
— liczby pól (pole m n em o n ik a i dow olna liczba arg u m e n tów)
— sposobu d zielenia arg u m e n tó w dłuższych od jednostki ad re so w a ln e j (np. adresów 16-bitow ych n a bajty )
— p rzy p o rzą d k o w a n ia sp ó jn y ch ciągów b itów in stru k c ji m a szynow ej do każdego pola in stru k c ji języka sym bolicznego
(rys. 2). ■
Rys. 2. O dw zorow anie pom iędzy p olam i in stru k cji języ k a s y m b o liczn eg o i b itam i rozkazu m aszyn ow ego na p rzyk ład zie in stru k cji MVI m ikroprocesora 8080; a) stru k tura rozkazu m a szy n o w eg o , b) od p ow ied n i fra g m e n t d efin ic ji asem b lera. W ASM /GEN pole m n e m onika d efin io w a n e je s t zaw sze ja k o p ierw sze, po n im d efin io w a n e je st p ole od p ow iad ające p ierw szem u a rg u m en to w i in stru k cji itd.
P ola a rg u m en tó w m ogą nak ładać się na pole m n em on ik a, a le nie na sie b ie . P rzetw arzan ie lin ii program u źród łow ego od le w e j stron y do p raw ej za p ew n ia w y g en ero w a n ie w ła śc iw eg o k od u dla pola REG
A rg u m en ty w yo d ręb n io n e z kodu źródłow ego są n u m e ro w ane od lew ej stro n y do p ra w e j (liczba a rg u m e n tó w może być dow olna), a d efin icja o k reśla, z k tó ry m a rg u m e n tem zw iązane je st k ażde pole w d an y m form acie in stru k c ji.
A sem bler, w y g en ero w an y przez system ASM /GEN, sk ła d a się z części sta łe j o raz m odułów , u tw orzonych n a podstaw ie dostarczonej przez u ży tk o w n ik a d efin icji (jeden m oduł dla każdej k lasy in stru k c ji). W iększość elem en tó w sk ła d n i ję zyka sym bolicznego (zbiór pseudooperacji, se p a ra to ry pól in stru k c ji, sk ła d n ia w y rażeń ary tm ety czn y ch , itp.) je st u s ta lona. Ję z y k źródłow y nie dopuszcza w arg u m e n ta c h znaków specjaln y ch o k reślający ch try b adreso w an ia. T ak w ięc, po
dobnie ja k w .system ie CASS8, konieczne byw a ro zszerze
nie zbioru m nem oników in stru k c ji.
SYSTEM Y UNIW ERSALNE W ZGLĘDEM SPR ZĘTU I JĘ Z Y K A SYM BOLICZNEGO
W szystkie asem b lery uzy sk an e za pom ocą system u o c e chach opisanych w p o przednim pu n k cie m a ją podobne ję zyki sym boliczne. Czasem m ożna to uw ażać za zaletę, np.
gdy w d an y m ośrodku badaw czym p rag n ie się um ożliw ić pro g ram o w an ie różnych m ikroprocesorów w tym sam ym języku (istnieje n a w e t propozycja ję zy k a un iw ersaln eg o dla m ikroprocesorów i[3], używ anego już w ETH w Z urichu).
Nie m a to rów n ież istotnego znaczenia w p rzy p a d k u now ych k o n stru k cji, np. z m ikroprocesorów segm entow ych, gdyż w ted y p o trze b n y je st ja k ik o lw ie k asem b ler i jego postać je st m n ie j w ażna.
N ajczęściej je d n a k u stalony z góry język o k az u je się niew ygodnym ograniczeniem , poniew aż uniem ożliw ia k o rzy sta n ie z istn iejący c h podręczników czy też o p ro g ram o w an ia udostępnianego przez ró żn e firm y . P o n ad to p rogram iści z n a
ją cy już d a n y m ik ro p ro ceso r m usieliby uczyć się nowego języka.
Zastosow anie asem b lera un iw ersaln eg o w zględem języka usuw a te kłopoty. Z nane są ro zw ią zan ia ta k ich system ów o rozm aity m sto p n iu ogólności, tj. o różnych ograniczeniach w zględem definiowaneffo języka sym bolicznego. A sem blery z te j g ru p y są w pełn i u n iw e rsa ln e w zględem sp rzę tu (m ożna definiow ać dow olne fo rm a tv rozkazów m aszy n o wych), n a to m ia st p rak ty c z n ie w każdym z nich jiie k tó ^ e elem e n ty składni jężyka sym bolicznego są u stalo n e (wspól ne dla w szystkich iezyków d efiniow alnych w dan y m s y stem ie). W w iększości system ów p rzyjęto:
— u sta lo n y zbiór (ale niekoniecznie niezm ien n ą postać) p se u dooperacji
— sw obodny lu b półsw obodny (jedna in stru k c ja w linii) fo rm a t te k stu
— stałą sk ła d n ię w y ra że ń ary tm ety czn y ch .
N iektóre elem e n ty ję zy k a źródłow ego zaw sze m ożna d efi
niow ać.
Do nich należą:
— se p a ra to ry pól in stru k c ji
— m nem oniki
— sym boliczne nazw y re je stró w
— kodow anie try b ó w adreso w an ia.
P ozostałe cechy języka, ta k ie ja k postać e ty k ie ty czv fo r
m a t stały ch liczbow ych i znakow ych, są w poszczególnych rozw iązan iach d efiniow ane lu b ustalone.
D efinicja asem b lera w system ie u n iw ersa ln y m w zględem sp rzę tu i- ję z y k a m usi określać:
— fo rm a t kodu źródłow ego (definiow alne elem enty)
— fo rm a t kodu w ynikow ego
— odw zorow anie pom iędzy kodem źródłow ym i w yn ik o wym .
U żytkow nik op raco w u je definicję asem b lera w m etajęzyku specyficznym d la danego system u. S k ład n ia m e tajęz y k a po
w in n a, przez p rostotę i odpow iednią sym bolikę, zapew nić łatw ość d o konania d efinicji asem b lera. Z dru g iej stro n y — zbiór k o n stru k c ji m e tajęz y k a pow inien um ożliw iać d efinio
w an ie ja k n ajliczn iejszej klasy języków .
W sy stem ach opracow anych w la tac h sześćdziesiątych, fo rm a t kodu źródłow ego określano przez ,podanie zbioru p ro d u k cji g ra m a ty k i g e n e ru jąc ej d any język.
P odejście ta k ie stosow ano także do im p lem en tacji języ
ków w ysokiego poziom u w tzw . k o m p ilato rac h k o m p ilato rów . Opis g ram a ty k i, uw zględ n iający rów n ież ak c je se
m an ty cz n e tra n sla to ra , ste ro w a ł p rac ą system u. We w spół
czesnych rozw iązaniach u n iw ersa ln y ch asem blerów n iek tó re typow e fu n k c je asem b lera (np. operacje n a tablicach sy m boli, ro zb ió r w y ra że ń ary tm ety czn y ch , p rze tw a rz a n ie pseudo- operacji) są zdefiniow ane w stę p n ie i u k ry te przed u ży tk o w nikiem . D efiniuje się jed y n ie akcje asem b lera zw iązane ze sp ecyfiką danego języka sym bolicznego oraz sprzętu.
S fo rm alizo w an a defin icja asem b lera je st p rz e tw a rz a n a przez system do postaci w e w n ę trz n e j s tru k tu ry danych. S y
stem dostosow any do k o nkretnego m ikroprocesora sk ład a się z części sta łe j (program u — „szkieletu” tra n sla to ra ) oraz s tr u k tu ry dan y ch za w ierając ej in fo rm ac je o definiow anych cechach asem b lera. P ostać s tr u k tu r y może być różna, zale
żnie od im p lem en tacji, np. może to być zbiór tablic, s tr u k tu ra d rze w iasta lub zbiór m a k ro d efin icji. O ile n am w ia domo, nie zostało dotąd op u b lik o w an e rozw iązanie, zaim ple
m en to w an e jako g en e rato r kodu.
P rz y k ła d e m asem b lera u niw ersalnego w zględem sprzętu i języka sym bolicznego je st o pracow any przez nas system
UAS (U n iw ersaln y A sem bler S krośny) >[4],
D EFIN IO W A N IE A SEM B LER A W SYSTEM IE UAS
Ję zy k i sym boliczne d efiniow alne w system ie UAS m ają
n a s tęp u jące .w spólne cechy: j ■
— u stalony zbiór pseudooperacji
— półsw obodny fo rm a t te k stu
’— zbiór o p era to ró w dopuszczalnych w w yrażeniach o g ran i
czony do i „—
P ozostałe elem e n ty sk ła d n i asem b lera kod u je się w m e ta języku JD A (Język D efinicji A sem blerów ). Ję zy k ten pow sta ł w sk u te k rozw inięcia koncepcji d efiniow ania asem b lera zarysow anej w p u b lik a cji ¡[1], D efin icja sk ła d a się z sekcji ok reślający ch cechy języka sym bolicznego, sp rzę tu ,, a także ich w zajem n e pow iązania. P oniżej podano listę słów kluczo
w ych, n a podstaw ie k tó ry ch są id e n ty fik o w an e poszczególne sekcje definicji:
SA LPH A — d efin icja dodatkow ych lite r
SRSX — definicja sym boli zarezerw ow anych asem b lera SSOURCE — definicja se p a ra to ró w pól in stru k c ji (lub pse- u doinstrukeji)
SLOC — defin icja postaci odw ołania do licznika adresów S A D D R ,— defin icja jed n o stk i ad reso w ej
SZONE — d efin icja fo rm ató w sta ły c h liczbow ych i zn a k o wych
SCHAR — d efin icja długości re p re z e n ta c ji znaków i kodów znaków
SNOP — defin icja kodu generow anego dla błęd n y ch in s tru kcji
SERR — d efin icja dodatkow ych kom u n ik ató w asem b lera w ynikow ego
STY PĘ — d efin icja klasy in stru k c ji SEND — koniec defin icji asem blera.
\
Sekcje w y stę p u ją w tekście defin icji w kolejności zgodnej z u p o rząd k o w an iem tej listy. M ożliwe je st p o m ijan ie fra g m entów d efinicji, a n a w e t całych sekcji. Z ostaną w tedy d om niem ane ele m e n ty sk ła d n i lu b cechy sp rzętu , np. for
m aty stały ch zgodne z n o ta cją języka CALM -2 i propozycją IEEE czy kod re p re z e n ta c ji znaków ASCII. Może w ystąpić dow olna liczba sekcji za w ierający ch d efin icje k las in stru k c ji.
W iększość n a k ła d u p rac y użytkow nika, opracow ującego definicję asem blera, p rzy p a d a n a podział zbioru in stru k c ji na klasy oraz o kreślenie sposobu p rz e tw a rz a n ia d la każdej z klas. Ze w zględu na proces p rze tw arzan ia, in stru k c je zgrupow ane w je d n ej k lasie różnią się jed y n ie m n em o n i
kam i i za w artością pól stałych. Z aiem w aru n k ie m zgrupo
w an ia in stru k c ji w jed n ej k lasie je st zgodność fo rm ató w ich postaci źródłow ych i w y n ikow ych oraz odw zorow ań pom iędzy polam i in stru k c ji sym bolicznych i polam i k o dów’ w ynikow ych.
" T Y P E “S K O K I K R Ó T K I E *
I f W 2, O P C O 0 £ < 1 5 , 8 ) , U I S P < 7 , 0 >
I M N F L 0 < O P C 0 0 E > , <'BCC',2il>. C U C S ’ ,25), < ' 8 E 0 ' , 2 7 > ,
< ' B G E ’, 2C>, < " B G T ' , 2 E ! . C ' B H I ' , 2 2 ) , C ' B L E ' , 2 F ) , C B U S ' , 2 3 ) , < ' B L T ' , 2 D ) , t ' B H I ' , 2 B ) , C B N E U 2 6 ) , ( ,B V C ' . 2 S ) , t ' B V S ' , 2 9 ) , ( ' B P L > , 2 A > , C > B R A ' V 2 » >
( ' B S R ' , 2 1 >
X D P 0 1 (U2>
D I S P L = O P 0 1 - P C - 2
P rzykład 1
W przykładzie 1 podano d efin icję klasy w języ k u JDA — in stru k c ji skoków k ró tk ic h (w zględnych), dla m ik ro p ro ce
sora MC6800. Poszczególne części d efinicji sekcji m a ją n a stę p u ją c e znaczenie:
%FLD — d efin iu je fo rm a t in stru k c ji tej klasy jako d w u
b ajtow y, złożony k olejno z pól OPCODE i D IS PL
KiMN — w skazuje, że m nem onikow i in stru k c ji źródłow ej o dpow iada w ro zk azie pole OPCODE, a także po d aje m o
żliw e m nem oniki oraz ich kody
%OPD, w ra z z n astę p u ją c y m po nim podstaw ieniem , w sk a zuje, że a rg u m e n to w i pierw szem u odpow iada pole D ISPL, - na które, należy podstaw ić w artość podanego w y rażen ia za
kodow aną w kodzie ■— u zu p ełn ien ie dw ójkow e.
W n iek tó ry ch p rzy p a d k ach u ży tk o w n ik opraco w u jący de
finicję asem b lera m usi pam iętać o w łaściw ym u p o rzą d k o w aniu klas in stru k c ji. P rzy k ład o w o — in stru k c je w irtu aln e, tj. g en e ru jąc e dla tego sam ego m nem onika kod o różnej długości, p ow inny być defin io w an e w dw óch klasach. K la
sa za w ierając a długie in stru k c je w irtu a ln e m usi następow ać bezpośrednio za k la są g ru p u ją c ą ich k ró tk ie odpow iedniki (oznaczoną przez o p cję V IR T ).-P o d o b n ie klasa za w ierając a in stru k c je .o try b ac h ad re so w a n ia określonych ex p licite (np.
dla MC6800 p rze d ro stek o k reśla ad re so w a n ie proste, p rzy ro ste k ,,(X)” — ad reso w an ie indeksow e) m usi po p rze
dzić klasę g ru p u ją c ą in stru k c je o ta k ich sam ych m nem oni
kach, ale bez znaków’ sp ecjaln y ch w argum encie.
O gólnie rzecz biorąc — w ew n ą trz d efinicji klasy mogą.
w y stąp ić k o n stru k c je m e tajęz y k a JD A , o następującym i z n a
czeniu: .
— o p cje k la sy (np. in fo rm u jąc e o tym , że in stru k c je m ają postać długą i kró tk ą)
— defin icja długości i podział na pola in stru k c ji -m aszyno
w ych (za słow em kluczow ym %FLD)
— definicja m nem oników i zaw arto ści pól stały ch in stru k c ji (zaw ierających kod operacji) ro zp o czy n ająca się od słow a kluczow ego %MN
— d efin icje arg u m e n tó w (za słow em kluczow ym %OPD) ok reśla ją ce ty p dopuszczalnych w y ra że ń ary tm ety c zn y c h oraz kod liczbow y
— definicje pod staw ień pod pola zm ienne in stru k c ji
— defin icje w aru n k ó w (np. b ad a n ie te k stu źródłowego).
Najbardziej znaczqcy bit Adres 2 2 22\21 20 19 18 17 16
?5 K 13 12 11 10 S 8 '
» 6 5 A 3 2 i 0
Rys. 3. N u m eracja b itó w in str u k c ji o d łu g o ści trzech b ajtów
P odział in stru k c ji m aszynow ej n a pola w y o d rę b n ia części zajm o w an e przez kod o p eracji, kody try b ó w adresow ania poszczególnych arg u m e n tó w i a rg u m e n ty . P rz y ję tą k onw en
cję n u m e ra c ji bitów ilu s tru je ry su n e k 3. D efinicja a rg u m en tu o k reśla ty p dopuszczalnych w yrażeń ary tm ety czn y ch (sum aryczny zn ak odw ołań do etykiet, i licznika adresów ) oraz kod liczbowy (n a tu ra ln y kod b in a rn y , uzupełnienie dw ójkow e, kod zn ak -m o d u ł itp.), w k tó ry m zostanie p rze d
sta w io n a obliczona w artość arg u m e n tu . D efinicje podstaw ień pod pola zm ienne i definicje w aru n k ó w o k re śla ją d ziałanie asem b lera po odszu k an iu klasy, w k tó re j zdefiniow ano m nem onik p rz e tw a rz a n e j in stru k c ji. Jeżeli a r g u m e n t' in stru k c ji zaw iera tylko w yrażen ie ary tm ety czn e, należy zde
finiow ać p o d staw ien ie bezw arunkow e. W trak c ie p rz e tw a rza n ia n astą p i w tym p rzy p a d k u podstaw ien ie obliczonej w artości arg u m e n tu pod w skazane p o le ' (lub pola) in s tru k cji, np.:
F = O P D l
A sem bler z in te rp re tu je pierw szy a rg u m e n t in stru k c ji jako w yrażenie ary tm ety czn e. Po obliczeniu w artości w yrażenia, o ile nie w y stą p ią błędy składniow e lu b sem antyczne, n a stąpi k o n w ersja do odpow iedniego kodu (określonego w de
finicji tego arg u m en tu ). W ynik zostanie w pisany do pola F (zdefiniow anego w cześniej dla te j klasy).
Je że li w polu arg u m e n tu m ogą w y stą p ić znaki sp ecjalne o k reśla ją ce try b ad re so w a n ia lu b ja k iek o lw iek sym bole, nie in te rp re to w a n e jako sk ła d n ik i w y rażen ia arytm etycznego, d efin iu je się podstaw ien ie w aru n k o w e, np.:
F = COND(SUBSTR(l, 1, OPD1) = & SUBSTR(-1, -1-OPD1)
= ')' -<-SUBSTR(2,-2,OPDl), -f-OPDl)
Jeżeli pierw szym znakiem a rg u m e n tu je st ”(”, a o sta t
n im — ”)”, to te k st od drugiego do przedostatniego znaku tego a rg u m e n tu zostanie zin te rp re to w a n y jako w yrażen ie arytm etyczne. We w szystkich 'pozostałych p rzy p a d k ach cały pierw szy arg u m e n t będzie p rze tw arzan y ja k w yrażenie. D al
sze działan ie asem b lera je st identyczne ja k w poprzednim przykładzie.
W przy p ad k u , gdy chcem y zbadać postać a rg u m e n tu (je
d n ak bez g en e racji kodu binarnego), należy określić akcję asem b lera za pom ocą d e f in s ji w aru n k u , np.:
COND(OPDl = 'A')
A sem bler zbada, cży pierw szy arg u m e n t je st lite rą A (tj.
np. nazw ą sym boliczną ak u m u lato ra ) i będzie k o n ty n u o w ał p rze tw arzan ie in stru k c ji w ra m a c h d an ej klasy tylko w tedy, gdy w a ru n e k je st spełniony.
In n e p rzy k ła d y k o n stru k c ji JD A podano w D odatku, za
w iera jąc y m fra g m e n ty d efinicji asem b lera dla m ik ro p ro ce
so ra MC6800 firm y MOTOROLA.
IM PLEM EN TA C JA SYSTEM U UAS
W szystkie p ro g ra m y u n iw ersalnego asem b lera napisano w języ k u P A SC A L i uruchom iono na kom p u terze ODRA 1305 pod n ad zo rem system u o p eracyjnego GEORGE-3 w In sty tu cie In fo rm a ty k i P o lite ch n ik i W arszaw skiej. W ram ach te sto w an ia system u, uzyskano w k ró tk im czasie asem blery sk ro śn e dla czterech typów m ikroprocesorów : IN TEL 8080, MC6800, PACE 0502, Z80.
K o d ź r ó d ło w y ,
a s e m b le r a w ra z z d i a g n o z y k r ; b ie d 5
Rys. 4. W ersja p od staw ow a sy ste m u U A S
t r a n s la c ji p r o g r a m u u z y łk o w e g o
D efinicja asem b lera w postaci w ew n ątrzm aszy n o w ej, ja k rów nież s tru k tu ry danych tw orzone w czasie tran slac ji, s k ła d a ją się głów nie z list i drzew . W celu uzy sk an ia m o
żliw ie dużej szybkości p rze tw arzan ia, asem bler sk ro śn y zo
sta ł zrealizow any jako jednoprzebiegow y. P oniew aż dopusz
cza się in stru k c je w irtu aln e, zastosow ano podw ójny licznik adresów (m inim alna w artość — dla k ró tk ic h w ersji tych in stru k c ji, m ak sy m a ln a — d la w e rsji długich). W szystkie odw ołania od e ty k ie t i do licznika adresów są ostatecznie u sta la n e po opty m alizacji in stru k c ji w irtu a ln y c h (po p rz e tw orzeniu segm entu kodu źródłowego).
R ys. 5. S ch em a t sterow an ia asem b lera sk rośn ego w sy ste m ie UAS
O gólny sch em at ste ro w a n ia asem b lera skrośnego p rz e d staw iono n a ry s u n k u 5. D otychczasow e dośw iadczenia po
zw a lają ju ż n a c h a ra k te ry sty k ę ilościow ą system u UAS.
P o d staw ą są tu cztery asem b lery uzy sk an e w tym system ie dla m ikroprocesorów : 8080 (INTEL), 6800 (MOTOROLA), Z80 (ZILOG) i 6500 (PACE). W każdym p rzy p a d k u dążono do uzyskania asem b lera m ożliw ie zbliżonego do asem b lera producenta. P oza u sta le n iam i p rzy ję ty m i a p rio ri (dotyczą
cym i p seudooperacji i o p era to ró w arytm etycznych), w p ro w adzono jed y n ie drobne zm iany w sk ła d n i języków sy m bolicznych. '
T ra n sla to r m e tajęz y k a JD A za jm u je 14 867 słów pam ięci.
Ś re d n ia szybkość p rz e tw a rz a n ia d efinicji asem b leró w w y niosła ok. 1380 lin ii/m in . N iek tó re p a ra m e try asem blerów zestaw iono w ta b eli 1. Z ajętość pam ięci a sem b lera w yniko- Tabeia 1. Parametry asemblerów wynikowych
P od staw o w a w e rsja system u UAS sk ła d a się z tra n s la to ra języka JD A i asem b lera skrośnego (rys. 4). T ra n sla to r m e tajęz y k a p rz e tw a rz a zakodow aną d efinicję asem blera, sp raw d za ją c jej fo rm a ln ą popraw ność, i sk ła d u je utw orzoną s tru k tu r ę dan y ch na pliku. A sem bler skrośny p rze tw arza p ro g ra m użytkow y do postaci nieprzesuw nego kodu b i
narn eg o w op arciu o s tru k tu rę definicji, odczytaną z pliku /w skazanego przez użytkow nika. R ozdzielenie etap ó w prze
tw a rz a n ia n a fazę tłum aczenia p ro g ram u użytkow ego — um ożliw ia utw o rzen ie biblioteki d efinicji asem blerów . Is t
n ieje rów n ież w ersja , w k tó re j obie części system u zostały połączone w jed en program .
Typ mikro
procesora
Długość tekstu defi
nicji asemblera (w liniach)
Zajętość pamięci przetworzonej
definicji (w słowach)
Średnia szybkość przetwarzania*) (w linlach/mln)
8080 83 1181 530
N GSOO 111 2242 005
0500 100 1521 505
280 359 6153 455
*) Nie uwzględniono czasu sprowadzenia do pamięci operacyjnej przetworzonej definicji i czasu wyprowadzania taimy z kodem binarnym