🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: jak zaczac ?

#388
From: Bogdan (bogdro)
Date: Sat, 29 Jul 2006 13:01
61 lines
4193 bytes
Stachu 'Dozzie' K. napisał(a):
> Brakuje mi opisu, gdzie są rozmieszczone zmienne lokalne, zmienne
> statyczne i globalne (C), jak się wyrównuje rejestr ESP przy wchodzeniu
> do funkcji (skompilowany kod C) i co to jest wskaźnik ramki. Pewnie coś
> jeszcze, ale na chwilę obecną nie pamiętam.
[...]

>>> jak przydzielać pamięć dla
>>> zmiennych lokalnych,
>>  Nie ma osobnego rozdziału o procedurach/podprogramach, więc tego też
>> nie ma. W zasadzie takie "przydzielanie" sprowadza się do
>>
>> 	sub esp, liczba_bajtow
>>
>> i operowaniu na [esp+xx] lub [ebp-xx]. O tym na pewno wspomnę.
> 
> Warto, bo przez naprawdę spory kawałek czasu zastanawiałem się, gdzie
> zapisywać lokalne inty. Dopiero dezasemblacja programiku pisanego
> w C wyjaśniła, jak to robić.
[...]

> Z uwag dodatkowych:
> - brakuje mi opisu, jak łączyć C i assemblera, gdy to assembler jest
>   głównym językiem (sytuacja odwrotna do wstawek). To już zahacza
>   o entry points (main i _start), tablicę symboli w kompilatorze
>   (u mnie: GCC), format ELF, biblioteki statyczne i współdzielone
>   i o loader ELF-ów
> - przydałaby się gdzieś informacja, jak upychane są argumenty syscalli,
>   gdy jest ich więcej niż trzy
> - funkcje w języku C mogą zwracać wartości o większym rozmiarze niż 32
>   bity; taka informacja może być pouczająca, gdy się pokaże, co się
>   dzieje z danymi o rozmiarze QWORD (EAX + EDX, nie pamiętam w jakiej
>   kolejności) i z dłuższymi
> - język C zakłada[*], że niektóre rejestry pozostaną niezmienione po
>   wywołaniu funkcji, a niektóre mogą się zmieniac swobodnie;
>   wspomnienie, które rejestry są które może być przydatne

 Wspomniane rzeczy właśnie popełniłem na stronę :)

 Krótka lista tu: http://rudy.mif.pg.gda.pl/~bogdro/atom.html#n20

P.S. Wiem, że miałem się przestać chwalić tym, co robię na WWW, ale tu
była wyraźna prośba na oczach wszystkich, więc odpowiadam też
wszystkim, żeby sobie ktoś nie pomyślał, że mój plik rzeczy do
zrobienia to /dev/null ;)

P.P.S. Mój kanał informacyjny ("dynamiczna zakładka") jest od niedawna
dostępny w postaci RSS 2.0 pod adresami:
http://rudy.mif.pg.gda.pl/~bogdro/asm-rss20.xml
http://rudy.mif.pg.gda.pl/~bogdro/asm.rss
lub ze strony głównej (tylko XML). Adresy wskazują na ten sam plik,
ale czytniki mogą czasem marudzić o rozszerzenie.
 Wiem, że miałem tego RSS nie robić, ale skoro napisałem sobie skrypt
w Perlu, który mój kanał Atom przerabia na RSS i wszystko się robi
automatycznie, to czemu nie? Potencjalnie szersza widownia. :)

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Prawdziwy, bezpieczny komunikator:                   www.JabberPL.org
Technical Details
Message-ID: <eafmc3$bt5$1@nemesis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <e8ifjo$o1i$1@atlantis.news.tpi.pl> <1152193946.886142.257150@75g2000cwc.googlegroups.com> <e8lm1p$dnv$1@inews.gazeta.pl> <e8nogd$cgm$2@atlantis.news.tpi.pl> <e8rd6g$ltc$1@nemesis.news.tpi.pl> <1152466310.474238.58090@35g2000cwc.googlegroups.com> <slrneb2iab.56h.dozzie@hans.zsh.bash.org.pl> <e8tjfq$6as$1@nemesis.news.tpi.pl> <slrneb505j.oqh.dozzie@hans.zsh.bash.org.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.silweb.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Bogdan (bogdro)" <bogdan@bogdan.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: jak zaczac ?
Date: Sat, 29 Jul 2006 15:01:34 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 61
Message-ID: <eafmc3$bt5$1@nemesis.news.tpi.pl>
References: <e8ifjo$o1i$1@atlantis.news.tpi.pl> <1152193946.886142.257150@75g2000cwc.googlegroups.com> <e8lm1p$dnv$1@inews.gazeta.pl> <e8nogd$cgm$2@atlantis.news.tpi.pl> <e8rd6g$ltc$1@nemesis.news.tpi.pl> <1152466310.474238.58090@35g2000cwc.googlegroups.com> <slrneb2iab.56h.dozzie@hans.zsh.bash.org.pl> <e8tjfq$6as$1@nemesis.news.tpi.pl> <slrneb505j.oqh.dozzie@hans.zsh.bash.org.pl>
NNTP-Posting-Host: acrd139.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1154178243 12197 83.11.5.139 (29 Jul 2006 13:04:03 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Sat, 29 Jul 2006 13:04:03 +0000 (UTC)
User-Agent: Thunderbird 1.5.0.5 (X11/20060719)
In-Reply-To: <slrneb505j.oqh.dozzie@hans.zsh.bash.org.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit