🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku

#1729
From: Doleś
Date: Wed, 19 Mar 2008 21:29
44 lines
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-mail
References: <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