Article View: pl.comp.lang.asm
Article #1729Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
From: Doleś
Date: Wed, 19 Mar 2008 21:29
Date: Wed, 19 Mar 2008 21:29
44 lines
3067 bytes
3067 bytes
Bogdan (bogdro) pisze: > Doleś pisze: >> Witam, >> jakiś czas temu strzelił mi do głowy ekstra pomysł abym sobie >> zaimplementował popularne, klasyczne algorytmy w Asemblerze, >> konkretnie w FASMie i pod Linuksem. Ot tak sobie dla poćwiczenia >> tudzież dla sprawdzenia umiejętności i nauczenia się czegoś nowego. >> Miałem zacząć od czegoś prościutkiego więc wybrałem "na dzień dobry" >> sortowanie bąbelkowe. Początkowe założenia były takie, >> aby program wczytał kilka(naście) liczb, posortował je a potem >> wyświetlił. Niestety pomysł spalił na panewce bo nawet przy pomocy >> biblioteki z http://rudy.mif.pg.gda.pl/~bogdro/ (dla Linuksa >> oczywiście) nie poradziłem sobie z wczytywaniem i wyświetlaniem liczb. > > Z czym konkretnie? > > mov ecx, 10 > wczyt: > pisz > db "Podaj liczbe: ", 0 > we32e > ; liczba w EAX, zachowaj do tablicy > loop wczyt > > mov ecx, 10 > wypis: > pisz > db "Podaj liczbe: ", 0 > ; wczytaj liczbę w tablicy do EAX > pisz32e > loop wypis Przyglądałem się makrom (dobrze mówię ? to są makra ?) w pliku "bibl/incl/linuxbsd/fasm" i jedynie co mi wtedy wpadło w oko to wczytywanie liczby we32, gdzie liczba wczytywana jest do DX:AX. Z niemałym wstydem przyznaję, że zupełnie przeoczyłem we32e gdzie calutka liczba wpada od razu do EAX. No ale spróbowałem, pogrzebałem w kodzie, zmierzyłem się z problemem i wiem, że to wcale nie takie proste. Ale już teraz poszukałem w sieci nieco solucji i widziałem rozkaz procesora o który w ogóle nie wpadł mi do głowy mianowicie XCHG a czytając o samym rozkazie jego operandach etc dowiedziałem się o czymś takim jak algorytm zmiany miejscami dwóch liczb przy pomocy trzech operacji XOR. Normalnie nigdy bym o czymś takim nie wiedział :) No nic napiszę ten kod na liczbach a potem jeszcze raz pomęczę tego z plikami. Jak będę miał jakieś osiągnięcia to się tutaj niewątpliwie pochwalę :D
Technical Details
Message-ID:
<frru7p$3s4$1@nemesis.news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!newsfeed.tpinternet.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!news.tpi.pl!not-for-mailReferences:
<frpbjq$kv5$1@atlantis.news.neostrada.pl> <frr8u0$ef6$1@inews.gazeta.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!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!news.tpi.pl!not-for-mail From: Doleś <doles2@gmail.com> Newsgroups: pl.comp.lang.asm Subject: Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku Date: Wed, 19 Mar 2008 22:29:17 +0100 Organization: TP - http://www.tp.pl/ Lines: 44 Message-ID: <frru7p$3s4$1@nemesis.news.neostrada.pl> References: <frpbjq$kv5$1@atlantis.news.neostrada.pl> <frr8u0$ef6$1@inews.gazeta.pl> NNTP-Posting-Host: abxe210.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.neostrada.pl 1205959737 3972 83.8.254.210 (19 Mar 2008 20:48:57 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Wed, 19 Mar 2008 20:48:57 +0000 (UTC) User-Agent: Thunderbird 2.0.0.12 (X11/20080227) In-Reply-To: <frr8u0$ef6$1@inews.gazeta.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit