🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #158

Re: add esp,12

#158
From: Daniel P.
Date: Wed, 15 Mar 2006 23:16
34 lines
2345 bytes
Użytkownik kuba <kuba1@o2.pl> w wiadomości
<dva3ec$nkq$1@nemesis.news.tpi.pl> napisał:
> mam nast. fragment kodu:
>
> push 10  ; -> 4[B]
> push offset lancuch_zn  ; -> 4[B]
> push 1   ; -> 4[B]
> call _write
> add esp,12
>
> ostatnia linia ponoc usuwa parametry ze stosu. Nie mam pojecia jak i 
> dlaczego i generalnie o co chodzi z tym usuwaniem w ostatniej linii, 
> dlaczego tzreba 12 dodac???

Dlaczego dodać 12? Bo odłożyłeś 12 bajtów danych. Każdy push odkłada
4 B (rozmiar rejestru 32 bitowego).
O co chodzi z tym usuwaniem?
Co robi komenda "pop eax"?
Przesyła do rejestru eax cztery bajty ze stosu, po czym aktualizuje
wskaźnik stosu (esp - sp od stack pointer). Gdy wysyłasz coś na stos
wskaźnik ten zmniejsza się o ilość danych (stos rośnie w dół), które
wysyłasz (najczęściej będą to 4B, lecz nie zawsze musi tak być). Gdy
pobierasz dane ze stosu wskaźnik ten zwiększa się o ilość danych, które
z niego pobierasz (4B). Jeżeli dane ze stosu nie są Ci potrzebne,
wystarczy, że samodzielnie zwiększysz wskaźnik stosu o potrzebną wartość
a będzie to adekwatne do pobrania ze stosu danych (pop) z tym, że nie
będziesz tych danych miał.
Dlaczego się to stosuje?
To co odłożyłeś na stos _musisz_ z niego pobrać. Jeżeli nie jest Ci to
potrzebne wystarczy, że zaktualizujesz sam wskaźnik - rezultat będzie
ten sam.
Aby lepiej to zrozumieć pobaw się jakimś debugerem - bez tego może być
ciężko. Popatrz jak są wywoływane procedury i jak się wtedy zmienia
esp.
Technical Details
Message-ID: <dva797$3lo$1@atlantis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <dva3ec$nkq$1@nemesis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Daniel P." <nako@go2.i.do.not.like.spam.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: add esp,12
Date: Wed, 15 Mar 2006 23:16:55 +0000 (UTC)
Organization: tp.internet - http://www.tpi.pl/
Lines: 34
Message-ID: <dva797$3lo$1@atlantis.news.tpi.pl>
References: <dva3ec$nkq$1@nemesis.news.tpi.pl>
NNTP-Posting-Host: plato.ksiezyc.pl
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1142464615 3768 217.97.185.2 (15 Mar 2006 23:16:55 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Wed, 15 Mar 2006 23:16:55 +0000 (UTC)
User-Agent: slrn/0.9.8.1 (Linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit