Article View: pl.comp.lang.asm
Article #1786Re: Transpozycja tablicy w C & Asembler
From: Bogdan (bogdro)
Date: Fri, 11 Apr 2008 15:41
Date: Fri, 11 Apr 2008 15:41
41 lines
2842 bytes
2842 bytes
Doleś pisze: > Witam, > mam pewien problem z transpozycją tablicy w Asemblerze. Napisałem > wszystko oprócz samej transpozycji w C. Ten sam program pod Windowsem > napisany w Visual Studio działa, ale pod Linuksem już nie chce. > Naturalnie nie próbuję składni MASMa przerzucić na Linuksa :) > Przepisałem sobie program na wg składni NASMa i oczywiście po kompilacji > i asemblacji oraz linkowaniu mam legendarny, kochany błąd "Segmentation > Fault". Próbowałem poradzić sobie samemu w związku z czym zrobiłem > przyspieszony kurs obsługi GDB (którego jeszcze do dzisiaj nie > potrafiłem obsługiwać) i debugowałem program. Zrobiłem "jump transponuj" > i dawałem na przemian "stepi", "print /d $rejestr" oraz "x /10i <adres>" > i starałem się kontrolować po kawałku jak się wykonuje program. O dziwo > sam algorytm wydawał się poprawny, śledziłem zmienne no i nie było > naruszenia ochrony pamięci w pętlach kodu. Problem powstał dopiero po > instrukcji RET gdy kod programu poszedł sobie hen, hen daleko poza > wstawkę w Asemblerze. Jedyne moje skojarzenie było takie, że gdzieś jest > nadpisane EIP, ale analizowałem kod i nie mam pojęcia gdzie. Poza tym, > czy gdyby nie było naruszenia stosu to nie wywaliłby komunikat "Smashing > stack detectet" ? Bo kiedyś takie coś miałem jak próbowałem techniki > przepełnienia bufora na własnym programie. To mówi o tym, że adres powrotny jest nieprawidłowy. Nie musi być od razu zamazany. Pomyśl przez chwilę nad ostatnimi liniami kodu: pop ebp mov esp, ebp ret i w przyszłości używaj leave ret :) Ponoć szybsze, a i trudniej się pomylić. -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID:
<fto0rj$180$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<ftm8vq$bl9$1@nemesis.news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Transpozycja tablicy w C & Asembler Date: Fri, 11 Apr 2008 17:41:37 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 41 Message-ID: <fto0rj$180$1@inews.gazeta.pl> References: <ftm8vq$bl9$1@nemesis.news.neostrada.pl> NNTP-Posting-Host: gpftor3.privacyfoundation.de Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1207928501 1280 91.121.102.64 (11 Apr 2008 15:41:41 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 11 Apr 2008 15:41:41 +0000 (UTC) X-User: bog.d In-Reply-To: <ftm8vq$bl9$1@nemesis.news.neostrada.pl> User-Agent: Thunderbird 2.0.0.12 (X11/20080213) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit