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

Re: Domaci pitanja

by Ivan Mitic
nedelja, 01. jun 2008 - 13:31.

Znaci to je to:)

Dobro, ni jedno ni drugo ne predstavlja problem promeniti, asistent bi mogao
da napise koji format da koristimo, da ne bi doslo do zabune na odbrani.

Hvala,

Ivan

2008/6/1 ivan dan <tekarh@yahoo.com>:

> LINK
> 2 1 2
> # segments (name base (hex) len (hex) desc)
> .txt 0 E RP
> .dat E 2 RWP
> # symbols (name value (hex) seg type)
> simbol1 0 0 U
> # relocations ( loc seg ref type)
> 0006 1 1 RS1
> 000A 1 2 R1
> # data (one line per segment)
> 00 60 08 00 00 60 F8 FF 00 60 02 00 40 30
> 01 00
>
> Evo mog izlaza,ocigledno se sve slaze razlika nam je samo kako zapisujemo
> data segment,tj. ja pisem prvo na nizu lokaciju nizi bajt pa onda na visu
> visi. dakle ako je kod za jz 6000 meni je nizi bajt 00 a visi 60.
> postoji jos jedna razlika u primeru a to sam ti boldovao. kod jz simbol1
> ti si upisao nule na adrese 6 i 7 a ja negativno izvoriste skoka.Posto
> skacem sa sledeceg pc-a a to je adresa 8 tj 0008h, negativan je broj fff8.
> Mislim da je i jedno i drugo dozvoljeno jer posle mozes kada sve linkujes da
> pronadjes tacan pomeraj.
>
> ----- Original Message ----
> From: Ivan Mitic <mitkebgd@gmail.com>
> To: ir3sp@rti.etf.bg.ac.yu
> Sent: Sunday, June 1, 2008 12:53:15 PM
> Subject: Re: [ir3sp] Domaci pitanja
>
> Hvala puno kolega!
>
> Ajde da potvrdimo, za kod koji se napisali, output je:
>
> LINK
> 2 1 2
> # segments (name base len desc)
> .text 0 e RP
> .data e 2 RWP
> # symbols (name value seg type)
> simbol1 0 0 U
> # relocations (loc seg ref type)
> 6 1 1 RS1
> a 1 2 R1
> # data (one line per segment)
> 6000 0008 6000 0000 6000 0002 3040
> 0001
>
> Pozdrav,
>
> Ivan
>
> 2008/6/1 ivan dan <tekarh@yahoo.com>:
>
>>
>> R1 se javlja kod instrukcije jz ako u istom modulu skocis u drugi segment,
>> RS1 isto kod jz ako u jednom modulu imas skok na labelu koja nije definisana
>> u tom modulu(eksterni simbol). Ako skaces u okviru istog segmenta onda nema
>> relokacije jer ti zapisujes pomeraj a ne vrednost adrese na koju skaces pa
>> ce taj pomeraj uvek biti isti gde god relocirao segment.
>> npr:
>> extern simbol1
>> segment txt
>> jz simbol2 (sadrzaj na lokacijama 2 i 3h nije
>> relokativan jer je skok u isti segment , 0 i 1 adrese su kod instrukcije jz)
>> jz simbol1 (sadrzaj na 6 i 7 je relokativan
>> tipa RS1)
>> jz simbol3 (sadrzaj na adresama A,Bh je R1
>> relokativan)
>> simbol2: push ax
>>
>> segment dat
>> simbol3: dw 1
>> end
>>
>> Pozdrav.
>>
>> ----- Original Message ----
>> From: Ivan Mitic <mitkebgd@gmail.com>
>> To: ir3sp@rti.etf.bg.ac.yu
>> Sent: Sunday, June 1, 2008 7:00:01 AM
>> Subject: Re: [ir3sp] Domaci pitanja
>>
>> I jos jedno pitanje:
>>
>> 1. Jel neko koristio relokacije tipa R1 i AR1? Na predavanjima ne postoji
>> ni jedan primer sa njima, osim sto se pominju. Nije skroz jasno kako bi se
>> to realizovalo. Jel treba praviti ove relokacije samo za uslovni skok (jz)?
>> Da li ih je potrebno praviti u slucaju da se skace u okviru istog segmenta?
>> I kako bi ustvari izgledao uslovni (relativni) skok na lokaciju funkcije u
>> drugom modulu, jel bi se opet koristila labela?
>>
>> Ovde bi kratak primer stvarno dobro dosao:)
>>
>> Pozdrav,
>>
>> Ivan
>>
>>
>> -----------------------------------------------------------------
>> unsubscribe:
>> minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir3sp
>> -----------------------------------------------------------------
>>
>>
>
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20ir3sp
> -----------------------------------------------------------------
>
>