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

Re: Asembleri zadatak

by Sasa Stojanovic
ponedeljak, 27. jul 2009 - 10:59.

1. U liniji 8. se radi o relativnom adresiranju, dok je u liniji 10. u pitanju apsolutno adresiranje. Razmislite jos jednom da li je PC apsolutno?

2. Ako ostavimo da se zapisi o relokacijama dopunjavaju izmedju prvog i poslednjeg prolaza, zar vam to ne lici na treci prolaz? A ako neki podatak nemate na raspolaganju u nekom trenutk, naravno da polje za taj podatak necete popunjavati tada, vec kasnije, kada vam podatak bude poznat. Sto se tice samog algoritma, vi mozete relokativne zapise praviti u drugom prolazu, tada ce vam sva polja biti poznata. Dakle, jedino bitno je da neki podatak ne koristite prije nego sto je poznat. Sve ostalo je moguce, samo su neka resenja bolja, a neka losija.

Pozdrav,
Sasa

--- On Sun, 7/26/09, Miljan Uscumlic <bezazleni@beotel.net> wrote:

From: Miljan Uscumlic <bezazleni@beotel.net>
Subject: [ir3sp] Asembleri zadatak
To: "ir3sp" <ir3sp@rti.etf.bg.ac.yu>
Date: Sunday, July 26, 2009, 8:55 PM


Dva pitanja u vezi s zadatkom s vežbi. Dokument je
RI4SP_V4_Asembleri.doc - poslednji zadatak.

1. Odnosi se na na liniju koda "8. LDR d" i relokaciju.

Komentar za ovu liniju: "Red u asemblerskom programu: 8.
Relativni pristup simbolu koji je definisan u istom fajlu.
Upisana razlika vrijednosti simbola i adrese sledeće
instrukcije.
Nije dodata relokacija jer su i simbol i mjesto
korišćenja u istom segmentu."

Mislim da je nedovoljan komentar "Nije dodata relokacija jer
su i simbol i mjesto korišćenja u istom segmentu."

Jer sledeća relokacija "0B 1 1 A1" (iz relocations
sekcije) se odnosi na liniju koda "10. d DC d" tj. za isti
simbol d za koji važi da su simbol i mesto
korišćenja u istom segmentu.

Za liniju 8. u kodu je potrebno upisati vrednost izraza d-PC
(relativno adresiranju u odnosu na PC)

Ako želimo da izračuno indeks klasifikacije ovog
izraza: d je relokativno, a PC je apsolutno pa ce biti
IK=1-0=1. Što bi bilo relokativno, pa je potrebna i ta
relokacija.

Kada bismo posmatrali LC+1 umesto PC onda bi izraz d-LC-1
bio apsolutan IK=1-1-0=0 i ne bi trebala relokacija (LC
je u ovom slučaju relokativan, jer nema ORG direktive).

Da li grešim?

2. Pitanje u vezi sa popunjavanjem tabele relokacija.

Kada prolazimo kroz asemblerski kod u prvom prolazu i
naidjemo na liniju "4. LDR a" pravimo prvi ulaz u tabeli
relokacija sa vrednostima byte=1 seg=1 type=R1, ali u
tom trenutku ne znamo u kom se segmentu nalazi simbol 'a',
pa ne možemo da popunimo i polje ref.

Tek kada dođemo do mesta definicije simbola, možemo
to polje na popunimo na osnovu sadržaja tabele simbola.

Da li polje ref u ovom ulazu i sva druga ref polja,
slična njemu po ovom osnovu, popunjavamo nakon prvog
prolaza prolazeći kroz tabelu relokacija i
konsultujući tabelu simbola koja će na kraju prvog
prolaza imati ove podatke? I na taj način dobijemo
potpunu tabelu relokacija, pa je u drugom prolazu možemo
prepisati u predmetni fajl.

Ili se popunjavanje ovih ref polja radi u drugom prolazu,
naravno pre prepisivanja tabele u predmetni fajl?

Glavno pitanje je da li je tačno da polje ref u ovakvim
slučajevima u prvom prolazu ostaje prazno.

Hvala na odgovorima

Miljan


-----Inline Attachment Follows-----

-----------------------------------------------------------------
unsubscribe:
   minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir3sp
-----------------------------------------------------------------