«« ( Date ) »» // «« ( Thread ) »» // ir3sp - 2008

Re: Domaci pitanja

by Ivan Mitic
utorak, 13. maj 2008 - 21:19.

I jos jedno pitanje!:)

Jel mozemo da koristimo CUP i JLex prilikom konstrukcije asemblera? Veliko
deo provera bi mogli da smestimo u gramatiku.

Hvala.


2008/5/13 Ivan Mitic <mitkebgd@gmail.com>:

> Naravno, u navedenom primeru bi se javljale samo instrukcije iz postavke
> domaceg.
>
> 2008/5/13 Ivan Mitic <mitkebgd@gmail.com>:
>
> Imam par nedoumica oko domaceg zadatka, pa ako neko zna bio bih zahvalan
> > da odgovori.
> >
> > 1. Samo da potvrdim. Domaci je znaci da se iz asemblerskog koda
> > napravimo objektni kod, tj. za primer dole:
> >
> > * BEG ; count the bits in a number
> > USE WRITE, TEMP ; external symbols
> > TXT ; default, even if not here
> > INI ; Read(A)
> > LOOP ; REPEAT
> > SHR ; A := A DIV 2
> > BCC EVEN ; IF A MOD 2 # 0 THEN
> > STA TEMP ; TEMP := A
> > LDA BITS
> > INC
> > STA BITS ; BITS := BITS + 1
> > LDA TEMP ; A := TEMP
> > EVEN BNZ LOOP ; UNTIL A = 0
> > LDA BITS ;
> > JSR WRITE ; Write(BITS)
> > HLT ; terminate execution
> > DAT
> > BITS DC 0 ; BITS : BYTE
> > END*
> >
> > dobijamo sledeci output:
> >
> > *LINK
> > 2 2 8
> > # segments (name base len desc)
> > .text 0 14 RP
> > .data 14 1 RWP
> > # symbols (name value seg type)
> > WRITE 0 0 U
> > TEMP 0 0 U
> > # relocations ( loc seg ref type)
> > 03 1 1 A1
> > 05 1 2 AS1
> > 07 1 2 A1
> > 0A 1 2 A1
> > 0C 1 2 AS1
> > 0E 1 1 A1
> > 10 1 2 A1
> > 12 1 1 AS1
> > # data (one line per segment)
> > 0A 16 3A 0D 1E 00 19 14 05 1E 14 19 00 37 01 19 14 3C 00 18 00
> >
> > *s tim sto je potrebno koristiti direktive PUBLIC i EXTERN umesto DEF i
> > USE.
> >
> > 2. Da li moze neko malo detaljnije da objasni namenu data, bss i stek
> > segmenta ili da naglasi njihove razlike? Najbolje bi bilo da navede neki
> > primer njihovog koriscenja.
> >
> > 3. Da li treba podrzati jos neke direktive pored PUBLIC, EXTERN, BSS,
> > DAT, TXT i STACK, END?
> >
> > Pozdrav,
> >
> > Ivan
> >
>
>