Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Sistemi operativi I > - esercizio su stack-
  Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
bill76
Apprendista Dottore

User info:
Registered: May 2003
Posts: 368 (0.05 al dì)
Location: Mariano Comense (Co)
Corso: Informatica
Anno: #Error#
Time Online: 10 Days, 7:21:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
- esercizio su stack-

Ciao ragazzi ho trovato sul dsy l'unico esercizio sullo stack (del primo compitino aprile 2007) ma nn mi tornano alcune cose:

Testo:

date le istruzioni:

push 4
push 0
push 7
mov ebp, esp
L1:
cmp 1, (ebp+8)
jnle L2
mov eax, (ebp+4)
add eax, (ebp+8)
mov eax, (ebp+4)
dec ebp+8
j L1
L2:
pop eax
push ebx

cosa contengono eax ed ebx alla fine?

1) Domanda ma perchè nn viene caricato niente nel registro ebx e viene chiesto quanto vale?
2) Perchè caricare nel registro eax il riferimento ebp + 8 che contiene l'indirizzo di rientro

Qualche anima pia ha il testo degli esercizi sullo stack che ha messo negli scritti di luglio,settembre,gennaio?

Grazie mille

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità

09-02-2008 21:51
Click Here to See the Profile for bill76 Click here to Send bill76 a Private Message Find more posts by bill76 Add bill76 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
bill76
Apprendista Dottore

User info:
Registered: May 2003
Posts: 368 (0.05 al dì)
Location: Mariano Comense (Co)
Corso: Informatica
Anno: #Error#
Time Online: 10 Days, 7:21:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Re: - esercizio su stack-

Ci riprovo:
Ciao ragazzi ho trovato sul dsy l'unico esercizio sullo stack (del primo compitino aprile 2007) ma nn mi tornano alcune cose:

Testo:

date le istruzioni:

push 4
push 0
push 7
mov ebp, esp
L1:
cmp 1, (ebp+8)
jnle L2
mov eax, (ebp+4)
add eax, (ebp+8)
mov eax, (ebp+4)
dec ebp+8
j L1
L2:
pop eax
push ebx

cosa contengono eax ed ebx alla fine?

1) Domanda ma perchè nn viene caricato niente nel registro ebx e viene chiesto quanto vale?
2) Perchè caricare nel registro eax il riferimento ebp + 4 che contiene l'indirizzo di rientro

Qualche anima pia ha il testo degli esercizi sullo stack che ha messo negli scritti di luglio,settembre,gennaio?

Grazie mille

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità

09-02-2008 21:55
Click Here to See the Profile for bill76 Click here to Send bill76 a Private Message Find more posts by bill76 Add bill76 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
DarkSchneider
Why so serious?

User info:
Registered: Feb 2004
Posts: 1250 (0.16 al dì)
Location: Brescia
Corso: Informatica
Anno: out of bounds :/
Time Online: 26 Days, 1:01:59 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

interesserebbe anche a me, visto che questo esercizio ricorre puntualmente in tutti gli scritti

10-02-2008 09:26
Click Here to See the Profile for DarkSchneider Click here to Send DarkSchneider a Private Message Find more posts by DarkSchneider Add DarkSchneider to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Liumberg
nervoso..sempre

User info:
Registered: Oct 2002
Posts: 53 (0.01 al dì)
Location: Bregnano -CO-
Corso: laurea triennale informatica
Anno: 3
Time Online: 1 Day, 2:08:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

sto cercando di risolverlo...sapendo poco niente di assembler..
ebp e esp inizialmente dove puntano?

sullo stack inizialmente ci sono:
4
0
7

giusto?
esp e ebp puntano alla locazione contenente 7,giusto?

11-02-2008 06:52
Click Here to See the Profile for Liumberg Click here to Send Liumberg a Private Message Find more posts by Liumberg Add Liumberg to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
bill76
Apprendista Dottore

User info:
Registered: May 2003
Posts: 368 (0.05 al dì)
Location: Mariano Comense (Co)
Corso: Informatica
Anno: #Error#
Time Online: 10 Days, 7:21:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Liumberg
sto cercando di risolverlo...sapendo poco niente di assembler..
ebp e esp inizialmente dove puntano?

sullo stack inizialmente ci sono:
4
0
7

giusto?
esp e ebp puntano alla locazione contenente 7,giusto?


Si ebp punta a 7. anche se sarebbe più giusto dire che ebp+8 punta a 7 visto che è il parametro giusto?

1) Domanda ma perchè nn viene caricato niente nel registro ebx e viene chiesto quanto vale?
2) Perchè caricare nel registro eax il riferimento ebp + 4 che contiene l'indirizzo di rientro

Tu hai il testo dell'ultimo tema d'esame o uno dei precedenti?

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità

11-02-2008 08:01
Click Here to See the Profile for bill76 Click here to Send bill76 a Private Message Find more posts by bill76 Add bill76 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Liumberg
nervoso..sempre

User info:
Registered: Oct 2002
Posts: 53 (0.01 al dì)
Location: Bregnano -CO-
Corso: laurea triennale informatica
Anno: 3
Time Online: 1 Day, 2:08:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

secondo me:
-ebp,esp puntano tutti e due alla locazione che contiene 7
di conseguenza ebp+4 punta alla locazione contenente 0 e ebp+8
punta alla locazione contenente 4.
-l'ultima riga presumo sia "pop ebx" e non "push ebx"..altrimenti non avrebbe senso chiedere il contenuto di ebx..e poi credo sia "dec (ebp+8)" e non "dec ebp+8".

poi non mi quadrano nemmeno le seguenti istruzioni:

mov eax, (ebp+4)
add eax, (ebp+8)
mov eax, (ebp+4)

la prima mette in eax il contenuto di ebp+4 cioè 0
la seconda somma ad eax il contenuto di ebp+8 quindi 0+4=4
la terza rimette in eax il contenuto di ebp+4 cioè 0?

molto probabilmente sbaglio io

-purtroppo niente testi di esami passati...mi spiace

12-02-2008 07:02
Click Here to See the Profile for Liumberg Click here to Send Liumberg a Private Message Find more posts by Liumberg Add Liumberg to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
bill76
Apprendista Dottore

User info:
Registered: May 2003
Posts: 368 (0.05 al dì)
Location: Mariano Comense (Co)
Corso: Informatica
Anno: #Error#
Time Online: 10 Days, 7:21:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by Liumberg
secondo me:
-ebp,esp puntano tutti e due alla locazione che contiene 7
di conseguenza ebp+4 punta alla locazione contenente 0 e ebp+8
punta alla locazione contenente 4.
-l'ultima riga presumo sia "pop ebx" e non "push ebx"..altrimenti non avrebbe senso chiedere il contenuto di ebx..e poi credo sia "dec (ebp+8)" e non "dec ebp+8".

poi non mi quadrano nemmeno le seguenti istruzioni:

mov eax, (ebp+4)
add eax, (ebp+8)
mov eax, (ebp+4)

la prima mette in eax il contenuto di ebp+4 cioè 0
la seconda somma ad eax il contenuto di ebp+8 quindi 0+4=4
la terza rimette in eax il contenuto di ebp+4 cioè 0?

molto probabilmente sbaglio io

-purtroppo niente testi di esami passati...mi spiace


Scusa la domanda ma nelle dispense il prof fa riferimento sempre
che ebp + 4 è sempre l'indirizzo di rientro tu dici che in questo caso ebp punta a 0 ebp+4 punta 4 e ebp +8 punta a 7?

Grazie mille

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità

12-02-2008 08:23
Click Here to See the Profile for bill76 Click here to Send bill76 a Private Message Find more posts by bill76 Add bill76 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Liumberg
nervoso..sempre

User info:
Registered: Oct 2002
Posts: 53 (0.01 al dì)
Location: Bregnano -CO-
Corso: laurea triennale informatica
Anno: 3
Time Online: 1 Day, 2:08:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

io la so così,in generale:
prima della chiamata di un sottoprogramma EBP punta al return address i passi sono:1- si salva sullo stack il contenuto di EBP (push EBP) ,2-EBP diventa uguale ad ESP (mov ebp,esp),quindi sia EBP che ESP puntano al top dello stack 3-si alloca lo spazio per i parametri modificando il registro ESP (sub esp,LOCAL_BYTES).
questo è quello che fa l'epilogo.

nel programma:
il passi 1 e 3 non ci sono,presumo che vengano fatti prima delle push

dopo le tre push lo stack diventa
4
0
7

con "mov ebp,esp" ebp punta al top dello stack,
quindi sia EBP che ESP puntano a 7,EBP+4 punta a 0 e EBP+8 punta 4

12-02-2008 10:14
Click Here to See the Profile for Liumberg Click here to Send Liumberg a Private Message Find more posts by Liumberg Add Liumberg to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
design8
.amico.

User info:
Registered: Aug 2006
Posts: 31 (0.00 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 4:53:56 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

interessa anche a me... ammesso che ci siano errori nel codice proposto... quali sono i procedimenti?

12-02-2008 14:08
Click Here to See the Profile for design8 Click here to Send design8 a Private Message Find more posts by design8 Add design8 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Liumberg
nervoso..sempre

User info:
Registered: Oct 2002
Posts: 53 (0.01 al dì)
Location: Bregnano -CO-
Corso: laurea triennale informatica
Anno: 3
Time Online: 1 Day, 2:08:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

a me viene EAX=7 EBX=0
o sbaglio io (molto probabile) o c'è qualcosa che non va nel testo

12-02-2008 17:36
Click Here to See the Profile for Liumberg Click here to Send Liumberg a Private Message Find more posts by Liumberg Add Liumberg to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
bill76
Apprendista Dottore

User info:
Registered: May 2003
Posts: 368 (0.05 al dì)
Location: Mariano Comense (Co)
Corso: Informatica
Anno: #Error#
Time Online: 10 Days, 7:21:31 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Scusami ma perchè ti esce EAX = 7?

l'ultimo assegnamento mov eax, (ebp+4) che punta a 0.
Quando esco dal ciclo carico dallo stack con pop eax ma vale 0

Fammi capire cosa mi perdo?

__________________
Poca osservazione e molto ragionamento portano all’errore,
molta osservazione e poco ragionamento conducono alla verità

12-02-2008 20:42
Click Here to See the Profile for bill76 Click here to Send bill76 a Private Message Find more posts by bill76 Add bill76 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Liumberg
nervoso..sempre

User info:
Registered: Oct 2002
Posts: 53 (0.01 al dì)
Location: Bregnano -CO-
Corso: laurea triennale informatica
Anno: 3
Time Online: 1 Day, 2:08:00: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by bill76
Scusami ma perchè ti esce EAX = 7?

l'ultimo assegnamento mov eax, (ebp+4) che punta a 0.
Quando esco dal ciclo carico dallo stack con pop eax ma vale 0

Fammi capire cosa mi perdo?



perchè con l'istruzione "pop eax" si preleva l'ultimo valore inserito sullo stack (7) e lo si mette in eax

13-02-2008 06:09
Click Here to See the Profile for Liumberg Click here to Send Liumberg a Private Message Find more posts by Liumberg Add Liumberg to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 15:26.    Post New Thread    Post A Reply
  Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.043 seconds (76.61% PHP - 23.39% MySQL) con 31 query.