• Nie Znaleziono Wyników

Informatyka Nr 12; Organ Komitetu Informatyki, Ministerstwa Nauki, Szkolnictwa Wyższego I Techniki Oraz Komitetu Naukowo-Technicznego NOT DS. Informatyki - Digital Library of the Silesian University of Technology

N/A
N/A
Protected

Academic year: 2022

Share "Informatyka Nr 12; Organ Komitetu Informatyki, Ministerstwa Nauki, Szkolnictwa Wyższego I Techniki Oraz Komitetu Naukowo-Technicznego NOT DS. Informatyki - Digital Library of the Silesian University of Technology"

Copied!
32
0
0

Pełen tekst

(1)

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

(2)

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

(3)

'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

(4)

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 :

(5)

® 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

(6)

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.

(7)

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.

(8)

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 ­

(9)

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

Cytaty

Powiązane dokumenty

nym dostępie (ang. m ultiple access) do ośrodka transm isji (ang. station) w sieci E thernet rozumie się pojedyncze adresowalne urządzenie, na ogół zrealizowane

W moim przekonaniu głęboko niesłuszny jest pogląd, że w przypadku produkow ania sprzętu kom puterow ego kom ­ patybilnego z wyrobam i znanych firm , należy

HacTonu^ne ciicTeMbi nMeiOT Cojiee uinpOKiie c^yiiK- ijnonajibHbie bo3mo&gt;khoctji no cpaBiieiimo c cncreMaMu, KOTOpbie AOCTaBJI«IOT npOI13BOAHTejlH BbIHIICJIHTejIbHbIX

W ciągu ostatnich m iesięcy sytuacja w Polsce zmieniła się tak dalece, że realne stają się nawet takie sfery działań, których wcześniej nie sposób

W ciągu ostatnich m iesięcy sytuacja w Polsce zmieniła się tak dalece, że realne stają się naw et takie sfery działań, których wcześniej nie sposób

W ciągu ostatnich m iesięcy sytuacja w Polsce zmieniła się tak dalece, że realne stają się nawet takie sfery działań, których wcześniej nie sposób

W artości tych zm iennych nie są zm ieniane przez RUN i CLEAR.. tu nntvm alnp.. AMEPOL skonstruowane są w oparciu o elem enty DRAM VLSI produkcji zachodniej, co

Odwzorowania ciągów+.