|
|
|
|
| |
|
bill76 |
- esercizio su stack- |
09-02-2008 21:51 |
|
|
bill76 |
Apprendista Dottore
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
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 |
|
|
| |
|
bill76 |
Re: - esercizio su stack- |
09-02-2008 21:55 |
|
|
bill76 |
Apprendista Dottore
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
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 |
|
|
| |
|
DarkSchneider |
interesserebbe anche a me, visto che questo eserci ... |
10-02-2008 09:26 |
|
|
DarkSchneider |
Why so serious?
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
Edit | Report | IP: Logged |
interesserebbe anche a me, visto che questo esercizio ricorre puntualmente in tutti gli scritti
|
10-02-2008 09:26 |
|
|
| |
|
Liumberg |
sto cercando di risolverlo...sapendo poco niente d ... |
11-02-2008 06:52 |
|
|
Liumberg |
nervoso..sempre
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
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 |
|
|
| |
|
bill76 |
[QUOTE][i]Originally posted by Liumberg [/i]
... |
11-02-2008 08:01 |
|
|
bill76 |
Apprendista Dottore
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
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 |
|
|
| |
|
Liumberg |
secondo me:
... |
12-02-2008 07:02 |
|
|
Liumberg |
nervoso..sempre
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
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 |
|
|
| |
|
bill76 |
[QUOTE][i]Originally posted by Liumberg [/i]
... |
12-02-2008 08:23 |
|
|
bill76 |
Apprendista Dottore
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
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 |
|
|
| |
|
Liumberg |
io la so così,in generale:
... |
12-02-2008 10:14 |
|
|
Liumberg |
nervoso..sempre
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
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 |
|
|
| |
|
design8 |
interessa anche a me... ammesso che ci siano error ... |
12-02-2008 14:08 |
|
|
design8 |
.amico.
Registered: Aug 2006
Posts: 31 (0.00 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 4:53:56 [...]
Status: Offline
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 |
|
|
| |
|
Liumberg |
a me viene EAX=7 EBX=0
... |
12-02-2008 17:36 |
|
|
Liumberg |
nervoso..sempre
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
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 |
|
|
| |
|
bill76 |
Scusami ma perchè ti esce EAX = 7?
... |
12-02-2008 20:42 |
|
|
bill76 |
Apprendista Dottore
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
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 |
|
|
| |
|
Liumberg |
[QUOTE][i]Originally posted by bill76 [/i]
... |
13-02-2008 06:09 |
|
|
Liumberg |
nervoso..sempre
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
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 |
|
|
| |
|
All times are GMT. The time now is 11:50. |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|