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

Domaci pitanja

by Ivan Mitic
utorak, 13. maj 2008 - 15:29.

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