Re: Domaci pitanja
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
-----------------------------------------------------------------
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
-----------------------------------------------------------------
- Follow-Ups:
- Re: Domaci pitanja
- From: "Ivan Mitic" <mitkebgd@gmail.com>
- Re: Domaci pitanja
Previous by date: Re: Domaci pitanja
Next by date: Re: Domaci pitanja
Previous by thread: Re: Domaci pitanja Next by thread: Re: Domaci pitanja
Previous by thread: Re: Domaci pitanja Next by thread: Re: Domaci pitanja