Re: jos pitanja u vezi pC-a
Unapred se izvinjavam zbog opsirnosti :)
1) pristup podacima u dinamickoj zoni memorije:
...
SIM1: DC 0 ; pretpostavimo da ovaj podatak ide u dinamicku zonu
...
da li programer treba da pise
ADD SIM1, 5, 5
ili
ADD (SIM1), 5, 5
?
Iz vaseg odgovora sledi da programer treba da pise na drugi nacin, ali ovo nije u saglasnosti sa sintaksom pC-a, gde se navodi da je
(SIM) = val(val(sim)), dok je cilj pristupiti direktno memorijskoj lokaciji u dinamickoj zoni
da li mozemo da usvojimo da programer pise na prvi nacin, pri cemu bi asembler to implicitno zbog ogranicenja pC-a prevodio u indirektno adresiranje sa dodatnom instrukcijom ucitavanja adrese (nesto poput MOV 7, #SIM)?
2) visestruki pristupi dinamickoj zoni memorije
ako imamo vise simbola (recimo SIM1, SIM2, SIM3) koji su po pretpostavci svi smesteni u dinamicku zonu memorije,
iz opisa pCa (na strani 1.42) sledi da je moguce napisati instrukciju npr.
ADD SIM1, SIM2, SIM3
da bi ovo bilo moguce prevesti moramo da odvojimo 3 memorijske lokacije u koje cemo smestiti adrese ovih simbola. Iz ovoga sledi da za fiksnu zonu u memoriji imamo samo 5 lokacija na raspolaganju ???
3) indirektno pristupanje dinamickoj memoriji
Da li treba zabraniti programeru da indirektno referencira simbole koje je rezervisao u dinamickoj zoni memorije? ovakav nacin pristupa bi napravio mnogo problema, jer bi se za svako koriscenje simbola na ovaj nacin morale umetati po 2 instrukcije. U opstem slucaju, kada bi iskoristili 3 ovakva adresiranja, slicno prethodnom primeru (recimo ADD, (SIM1), (SIM2), (SIM3) ), morali bismo da odvojimo 6 memorijskih lokacija u fiksnoj zoni, sto je cini neupotrebljivom za ostale potrebe.
4) Forward reference i backpatching
Najveci problem na koji sam do sada naisao vezan je za obracanje unapred. Ako upotrebimo simbol pre nego sto je definisan, potrebno je da napravimo odgovarajuci zapis u tabeli obracanja unapred, kao sto je opisano na predavanjima. Medjutim, u tom trenutku ne mozemo znati da li se taj podatak nalazi u fiksnoj ili dinamickoj zoni memorije, pa samim tim ni da li je potrebno odvojiti 4bita u postojecoj reci instrukcije ili 32 bita za umetnutu MOV instrukciju. Kako od ovoga zavise i relokacije koje se mogu pojaviti pre same definicije simbola, backpatching postaje previse slozen.
Da li postoji neko drugo resenje kako bi se izbegao ovaj problem?
Pozdav,
Ivan
________________________________
From: Sasa Stojanovic <stojsasa@yahoo.com>
To: sistemsko_programiranje ETF <ir3sp@rti.etf.bg.ac.yu>
Sent: Sunday, January 4, 2009 10:10:07 PM
Subject: Re: [ir3sp] Pitanja u vezi projekta - Asemblerske direktive
Uvesti dva tipa DAT segmenta:
DAT - lokacije koje se mogu adresirati i direktno i indirektno (prvih 8)
DATI - lokacije kojima se moze pristupati samo indirektno
Obezbijediti da se izgenerise potrebni kod za indirektni pristup (moguce je pretpostaviti da je lokacija sa adresom 7 rezervisana za tu namjenu, tako da za segment prvog tipa ostaje prvih 7 lokacija).
Pozdrav,
Sasa
1) pristup podacima u dinamickoj zoni memorije:
...
SIM1: DC 0 ; pretpostavimo da ovaj podatak ide u dinamicku zonu
...
da li programer treba da pise
ADD SIM1, 5, 5
ili
ADD (SIM1), 5, 5
?
Iz vaseg odgovora sledi da programer treba da pise na drugi nacin, ali ovo nije u saglasnosti sa sintaksom pC-a, gde se navodi da je
(SIM) = val(val(sim)), dok je cilj pristupiti direktno memorijskoj lokaciji u dinamickoj zoni
da li mozemo da usvojimo da programer pise na prvi nacin, pri cemu bi asembler to implicitno zbog ogranicenja pC-a prevodio u indirektno adresiranje sa dodatnom instrukcijom ucitavanja adrese (nesto poput MOV 7, #SIM)?
2) visestruki pristupi dinamickoj zoni memorije
ako imamo vise simbola (recimo SIM1, SIM2, SIM3) koji su po pretpostavci svi smesteni u dinamicku zonu memorije,
iz opisa pCa (na strani 1.42) sledi da je moguce napisati instrukciju npr.
ADD SIM1, SIM2, SIM3
da bi ovo bilo moguce prevesti moramo da odvojimo 3 memorijske lokacije u koje cemo smestiti adrese ovih simbola. Iz ovoga sledi da za fiksnu zonu u memoriji imamo samo 5 lokacija na raspolaganju ???
3) indirektno pristupanje dinamickoj memoriji
Da li treba zabraniti programeru da indirektno referencira simbole koje je rezervisao u dinamickoj zoni memorije? ovakav nacin pristupa bi napravio mnogo problema, jer bi se za svako koriscenje simbola na ovaj nacin morale umetati po 2 instrukcije. U opstem slucaju, kada bi iskoristili 3 ovakva adresiranja, slicno prethodnom primeru (recimo ADD, (SIM1), (SIM2), (SIM3) ), morali bismo da odvojimo 6 memorijskih lokacija u fiksnoj zoni, sto je cini neupotrebljivom za ostale potrebe.
4) Forward reference i backpatching
Najveci problem na koji sam do sada naisao vezan je za obracanje unapred. Ako upotrebimo simbol pre nego sto je definisan, potrebno je da napravimo odgovarajuci zapis u tabeli obracanja unapred, kao sto je opisano na predavanjima. Medjutim, u tom trenutku ne mozemo znati da li se taj podatak nalazi u fiksnoj ili dinamickoj zoni memorije, pa samim tim ni da li je potrebno odvojiti 4bita u postojecoj reci instrukcije ili 32 bita za umetnutu MOV instrukciju. Kako od ovoga zavise i relokacije koje se mogu pojaviti pre same definicije simbola, backpatching postaje previse slozen.
Da li postoji neko drugo resenje kako bi se izbegao ovaj problem?
Pozdav,
Ivan
________________________________
From: Sasa Stojanovic <stojsasa@yahoo.com>
To: sistemsko_programiranje ETF <ir3sp@rti.etf.bg.ac.yu>
Sent: Sunday, January 4, 2009 10:10:07 PM
Subject: Re: [ir3sp] Pitanja u vezi projekta - Asemblerske direktive
Uvesti dva tipa DAT segmenta:
DAT - lokacije koje se mogu adresirati i direktno i indirektno (prvih 8)
DATI - lokacije kojima se moze pristupati samo indirektno
Obezbijediti da se izgenerise potrebni kod za indirektni pristup (moguce je pretpostaviti da je lokacija sa adresom 7 rezervisana za tu namjenu, tako da za segment prvog tipa ostaje prvih 7 lokacija).
Pozdrav,
Sasa
- Follow-Ups:
- Re: jos pitanja u vezi pC-a
- From: Sasa Stojanovic <stojsasa@yahoo.com>
- Re: jos pitanja u vezi pC-a
- References:
- Re: Pitanja u vezi projekta - Asemblerske direktive
- From: Sasa Stojanovic <stojsasa@yahoo.com>
- Re: Pitanja u vezi projekta - Asemblerske direktive
Previous by date: Re: Pitanja u vezi projekta - Asemblerske direktive
Next by date: Re: jos pitanja u vezi pC-a
Previous by thread: Re: Pitanja u vezi projekta - Asemblerske direktive Next by thread: Re: jos pitanja u vezi pC-a
Previous by thread: Re: Pitanja u vezi projekta - Asemblerske direktive Next by thread: Re: jos pitanja u vezi pC-a