Thread View: pl.comp.lang.asm
17 messages
17 total messages
Started by Doleś
Tue, 18 Mar 2008 22:04
Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Tue, 18 Mar 2008 22:04
Date: Tue, 18 Mar 2008 22:04
29 lines
2662 bytes
2662 bytes
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. Zatem
postanowiłem aby program otwierał dwa pliki - źródłowy z ciągiem znaków
np "azjdckekljfkaljeks" i plik wyjściowy który będzie miał posortowany
ciąg. Nazwy plików byłyby podawane jako argumenty w konsoli. Program
napisałem, ale mam pewne błędy przy samej asemblacji kodu. FASM wywala
mi takie coś:
"flat assembler version 1.67.23 (16384 kilobytes memory)
sortowanie_babelkowe.asm [81]:
mov ah, [al + 1]
error: reserved word used as symbol."
Nie wiem o jakie słowo mu chodzi. No chyba ani "ah" ani "al" nie są
jakoś zakazane ? Tutaj zmieszczam kod źródłowy programu:
http://paste.org/index.php?id=2292
Nie wiem nawet czy działa (na 110 % nie) bo nie mogłem go zasemblować.
Chciałem napisać program bez podglądania sieci w poszukiwaniu gotowców,
więc przypuszczam, że de facto każda linijka mojego kodu zawiera błąd
(jakikolwiek).Jeśli komuś z grupowiczów dolega nadmiar wolnego czasu i
chęci to będę wdzięczny za każdą pomoc.
Pozdrawiam Bartek
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Wiktor S.
Date: Wed, 19 Mar 2008 00:22
Date: Wed, 19 Mar 2008 00:22
22 lines
1444 bytes
1444 bytes
> "flat assembler version 1.67.23 (16384 kilobytes memory) > sortowanie_babelkowe.asm [81]: > mov ah, [al + 1] > error: reserved word used as symbol." > Nie wiem o jakie słowo mu chodzi. No chyba ani "ah" ani "al" nie są > jakoś zakazane ? Tutaj zmieszczam kod źródłowy programu: próbujesz użyć 8-bitowego adresowania, a czegoś takiego nie było nawet w 8086 ;-) mov ah, [ebx + 1] względnie mov ah, [bx + 1] albo inne kombinacje, ale nie [al]. -- Azarien
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Wiktor S.
Date: Wed, 19 Mar 2008 00:23
Date: Wed, 19 Mar 2008 00:23
26 lines
1604 bytes
1604 bytes
>> "flat assembler version 1.67.23 (16384 kilobytes memory) >> sortowanie_babelkowe.asm [81]: >> mov ah, [al + 1] >> error: reserved word used as symbol." >> Nie wiem o jakie słowo mu chodzi. No chyba ani "ah" ani "al" nie są >> jakoś zakazane ? Tutaj zmieszczam kod źródłowy programu: > > próbujesz użyć 8-bitowego adresowania, a czegoś takiego nie było > nawet w 8086 ;-) > > > mov ah, [ebx + 1] > > względnie > > mov ah, [bx + 1] > > albo inne kombinacje, ale nie [al]. BTW. gdybyś używał nasma, dostałbyś "invalid effective address", zamiast tej mylącej bzdury ;-) -- Azarien
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Bogdan (bogdro)
Date: Wed, 19 Mar 2008 14:45
Date: Wed, 19 Mar 2008 14:45
51 lines
2812 bytes
2812 bytes
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 > Zatem > postanowiłem aby program otwierał dwa pliki - źródłowy z ciągiem znaków > np "azjdckekljfkaljeks" i plik wyjściowy który będzie miał posortowany > ciąg. Nazwy plików byłyby podawane jako argumenty w konsoli. Program > napisałem, ale mam pewne błędy przy samej asemblacji kodu. FASM wywala > mi takie coś: > "flat assembler version 1.67.23 (16384 kilobytes memory) > sortowanie_babelkowe.asm [81]: > mov ah, [al + 1] > error: reserved word used as symbol." Poza tym, co powiedział Wiktor, nie możesz nazwać zmiennej "al", bo to owszem jest słowo zarezerwowane. -- 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
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: 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
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Paweł Więcek
Date: Thu, 20 Mar 2008 18:52
Date: Thu, 20 Mar 2008 18:52
18 lines
2619 bytes
2619 bytes
Thus wrote Doleś <doles2@gmail.com>:
> Gdzie po linijce ".text.data.comment" (nie mam zielonego pojęcia skąd
Poczytaj o formacie ELF to się dowiesz...
> nie zakończy jeśli nie dam CTRL + C. W ogóle zastanawia mnie dlaczego
> program wyświetlił wszystkie komunikaty "olewając" moją funkcję
Niech zgadnę: funkcja wypisuąca napis oczekuje null terminatora, którego nie
wstawiłeś?
Paweł
--
(___) | Pawel Wiecek ----------------- Coven / Svart --------------------- |
< o o > | http://www.coven.vmh.net/ <coven@vmh.net> GSM: +48603240006 |
\ ^ / | GPG/PGP info in message headers * [ Debian GNU/Linux developer ] |
(") | * * * Happiness sucks. * * * |
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Thu, 20 Mar 2008 19:09
Date: Thu, 20 Mar 2008 19:09
32 lines
2948 bytes
2948 bytes
Dobra jak powiedziałem, tak zrobiłem. Napisałem teraz ten program
korzystając z bibliotek z strony Bogdana i nawet się kompiluje. Kod już
wygląda nieco ładniej. Program miał wyświetlać komunikat powitalny,
pobrać liczbę elementów tablicy do posortowania, potem wypełnić z STDIN
liczbami wspomnianą tablicę, posortować ją i na koniec wyświetlić. Tylko
oczywiście mam pewien dość dziwny problem. Po zasemblowaniu kodu
źródłowego poleceniem "fasm sortowanie_bablekowe.asm
sortowanie_babelkowe.o" i potem gdy wydaniu komendy "ld -s -o
sortowanie_babelkowe sortowanie_babelkowe.o bibl/lib/libasmio.a"
uruchamiam sobie normlanie program. O dziwo nie ma nigdzie segmentation
fault, co mnie niejako pociesza :) Ale mam taki dziwny wydruk:
"
Witaj! Ile danych chcesz wprowadzic ?: 'Oto jak wygląda tablica po
posortowaniu:
+Nastapil blad przy wczytywaniu ilosci danych w tablicy !
9The Netwide Assembler 0.98.39The Netwide Assembler
0.98.39.shstrtab.text.data.comment
<tutaj jakieś bezsensowne znaki i na końcu znak ">" >
d
"
Gdzie po linijce ".text.data.comment" (nie mam zielonego pojęcia skąd
ona się wzięła) jest bezsensowny ciąg dziwnych znaków i śmiga sobie znak
zachęty. Pomyślałem sobie, że może teraz program prosi o wpisanie
właśnie liczby N ale nic bardziej mylnego. Jeśli wpiszę jakiś znak to
program kończy od razu, jeśli liczbę to moge pisać cokolwiek i nigdy się
nie zakończy jeśli nie dam CTRL + C. W ogóle zastanawia mnie dlaczego
program wyświetlił wszystkie komunikaty "olewając" moją funkcję
sortującą ale i pobieranie z klawiatury. No i dlaczego po komunikacie
"Witaj! Ile danych chcesz wprowadzic ?:" pojawia się losowy znak. Raz
jest to "(" raz po prostu ' a czasem coś jeszcze innego. Czyżby program
sobie jakoś sam już wpisał wartość w zmienną number ?
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Thu, 20 Mar 2008 19:12
Date: Thu, 20 Mar 2008 19:12
37 lines
3276 bytes
3276 bytes
Doleś pisze:
> Dobra jak powiedziałem, tak zrobiłem. Napisałem teraz ten program
> korzystając z bibliotek z strony Bogdana i nawet się kompiluje. Kod już
> wygląda nieco ładniej. Program miał wyświetlać komunikat powitalny,
> pobrać liczbę elementów tablicy do posortowania, potem wypełnić z STDIN
> liczbami wspomnianą tablicę, posortować ją i na koniec wyświetlić. Tylko
> oczywiście mam pewien dość dziwny problem. Po zasemblowaniu kodu
> źródłowego poleceniem "fasm sortowanie_bablekowe.asm
> sortowanie_babelkowe.o" i potem gdy wydaniu komendy "ld -s -o
> sortowanie_babelkowe sortowanie_babelkowe.o bibl/lib/libasmio.a"
> uruchamiam sobie normlanie program. O dziwo nie ma nigdzie segmentation
> fault, co mnie niejako pociesza :) Ale mam taki dziwny wydruk:
> "
> Witaj! Ile danych chcesz wprowadzic ?: 'Oto jak wygląda tablica po
> posortowaniu:
> +Nastapil blad przy wczytywaniu ilosci danych w tablicy !
> 9The Netwide Assembler 0.98.39The Netwide Assembler
> 0.98.39.shstrtab.text.data.comment
> <tutaj jakieś bezsensowne znaki i na końcu znak ">" >
> d
>
> "
> Gdzie po linijce ".text.data.comment" (nie mam zielonego pojęcia skąd
> ona się wzięła) jest bezsensowny ciąg dziwnych znaków i śmiga sobie znak
> zachęty. Pomyślałem sobie, że może teraz program prosi o wpisanie
> właśnie liczby N ale nic bardziej mylnego. Jeśli wpiszę jakiś znak to
> program kończy od razu, jeśli liczbę to moge pisać cokolwiek i nigdy się
> nie zakończy jeśli nie dam CTRL + C. W ogóle zastanawia mnie dlaczego
> program wyświetlił wszystkie komunikaty "olewając" moją funkcję
> sortującą ale i pobieranie z klawiatury. No i dlaczego po komunikacie
> "Witaj! Ile danych chcesz wprowadzic ?:" pojawia się losowy znak. Raz
> jest to "(" raz po prostu ' a czasem coś jeszcze innego. Czyżby program
> sobie jakoś sam już wpisał wartość w zmienną number ?
Super, zapomniałem dać linka do kodu źródłowego:
http://paste.org/index.php?id=2345
Mam nadzieję, że mi wybaczycie mój nienajlepszy angielski, który użyłem
w kodzie źródłowym
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Michal Schulz
Date: Thu, 20 Mar 2008 19:15
Date: Thu, 20 Mar 2008 19:15
28 lines
1829 bytes
1829 bytes
Doleś wrote:
> Super, zapomniałem dać linka do kodu źródłowego:
> http://paste.org/index.php?id=2345
> Mam nadzieję, że mi wybaczycie mój nienajlepszy angielski, który użyłem
> w kodzie źródłowym
Nie znam skladni FASM-a, ale ten fragment kodu mi sie nie podoba:
mov ecx, greet
mov edx, greetOff
....
greet db "Witaj! Ile danych chcesz wprowadzic ?: "
greetOff dd $ - greet
mov ecx, greet zaladuje do ecx *ADRES* ciagu znakow. Bardzo ladnie.
Aaaaale.... mov edx, greetOff zaladuje do edx adres zmiennej greetOff a nie
wartosc wskazywana przez ta zmienna. Zamiast tego powinienes napisac:
mov ecx, greet
mov edx, [greetOff]
Oczywiscie moge sie mylic :) Jedyna skladnia jakiej ostatnio (od wielu wielu
lat) uzywam to AT&T.
--
Michal Schulz
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Michal Schulz
Date: Thu, 20 Mar 2008 20:15
Date: Thu, 20 Mar 2008 20:15
13 lines
1512 bytes
1512 bytes
Doleś wrote: >> A możliwe, choć i tak dziwne, bo nie raz używałem napisów do zapisywania >> w pliku czy coś i nie musiałem dawać 0 na koniec, ale zobaczę. Coś mi >> mówi, że właśnie masz rację. > Jednak nie, wstawienie na koniec samego zera nic nie zmienia. Zmieniłem > końce linijek z komunikatami na ",0h" i nic. Program nic a nic nie > zmienił swojego zachowania Wyjasnilem Ci juz co masz nie tak, przejrzyj ten watek -- Michal Schulz
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Thu, 20 Mar 2008 20:18
Date: Thu, 20 Mar 2008 20:18
17 lines
1794 bytes
1794 bytes
Paweł Więcek pisze: > Thus wrote Doleś <doles2@gmail.com>: >> Gdzie po linijce ".text.data.comment" (nie mam zielonego pojęcia skąd > > Poczytaj o formacie ELF to się dowiesz... > >> nie zakończy jeśli nie dam CTRL + C. W ogóle zastanawia mnie dlaczego >> program wyświetlił wszystkie komunikaty "olewając" moją funkcję > > Niech zgadnę: funkcja wypisuąca napis oczekuje null terminatora, którego nie > wstawiłeś? > > Paweł > A możliwe, choć i tak dziwne, bo nie raz używałem napisów do zapisywania w pliku czy coś i nie musiałem dawać 0 na koniec, ale zobaczę. Coś mi mówi, że właśnie masz rację.
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Thu, 20 Mar 2008 20:28
Date: Thu, 20 Mar 2008 20:28
7 lines
1568 bytes
1568 bytes
> A możliwe, choć i tak dziwne, bo nie raz używałem napisów do zapisywania > w pliku czy coś i nie musiałem dawać 0 na koniec, ale zobaczę. Coś mi > mówi, że właśnie masz rację. Jednak nie, wstawienie na koniec samego zera nic nie zmienia. Zmieniłem końce linijek z komunikatami na ",0h" i nic. Program nic a nic nie zmienił swojego zachowania
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Wiktor S.
Date: Thu, 20 Mar 2008 20:45
Date: Thu, 20 Mar 2008 20:45
13 lines
1379 bytes
1379 bytes
> mov ecx, greet > mov edx, [greetOff] > > Oczywiscie moge sie mylic :) Jedyna skladnia jakiej ostatnio (od > wielu wielu lat) uzywam to AT&T. Nie mylisz się. FASM ma NASM-ową składnię (która jest najbardziej logiczna IMHO). -- Azarien
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Michal Schulz
Date: Thu, 20 Mar 2008 20:53
Date: Thu, 20 Mar 2008 20:53
29 lines
2187 bytes
2187 bytes
Doleś wrote:
>> Wyjasnilem Ci juz co masz nie tak, przejrzyj ten watek
> Tak wyjaśniłeś mi i oczywiście dziękuję Ci za pomoc, ale znalazłem
> przyczynę czemu program tak dziwnie się zachowywał. Zrobiłem sobie mały
> test, to znaczy napisałem program który wyświetla byle jakie zdanie
> zakończone naturalnie bajtem 0
sys_write nie obchodzi czy ciag danych jest zakonczony bajtem 0 czy tez nie.
Problem byl w twoim kodzie. Przed wywolaniem sys_write umisciles w
rejestrze edx *ADRES* zmiennej zawierajacej ilosc bajtow do napisania:
mov edx, greetOff
Problem polega na tym, ze sys_write oczekuje w rejestrze edx *ILOSCI* bajtow
do zapisania, a nie adresu zmiennej ktora ta ilosc zawiera. Innymi slowy,
powinienes w edx umieszczac *WARTOSC* zmiennej:
mov edx, [greetOff]
> Najwyraźniej gryzie się biblioteka z makrami przy jednoczesnym używaniu
> konwencjonalnych wywołań jądra.
Najwyrazniej nie zrozumiales tego, co chcialem Ci przekazac.
Tak czy siak, mokrego dyngusa i smacznego jajka.
--
Michal Schulz
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Thu, 20 Mar 2008 21:17
Date: Thu, 20 Mar 2008 21:17
21 lines
2621 bytes
2621 bytes
>>> A możliwe, choć i tak dziwne, bo nie raz używałem napisów do zapisywania >>> w pliku czy coś i nie musiałem dawać 0 na koniec, ale zobaczę. Coś mi >>> mówi, że właśnie masz rację. >> Jednak nie, wstawienie na koniec samego zera nic nie zmienia. Zmieniłem >> końce linijek z komunikatami na ",0h" i nic. Program nic a nic nie >> zmienił swojego zachowania > > Wyjasnilem Ci juz co masz nie tak, przejrzyj ten watek Tak wyjaśniłeś mi i oczywiście dziękuję Ci za pomoc, ale znalazłem przyczynę czemu program tak dziwnie się zachowywał. Zrobiłem sobie mały test, to znaczy napisałem program który wyświetla byle jakie zdanie zakończone naturalnie bajtem 0 (wyświetla przy pomocy wywołań jądra) i pobiera liczbę przy pomocy makra we32e, następnie pobraną liczbę zwraca jako kod błędu i ja ją sobie odczytuję poleceniem echo $?. I co ? Najwyraźniej gryzie się biblioteka z makrami przy jednoczesnym używaniu konwencjonalnych wywołań jądra. Może przed każdym makrem powinienem dać pusha/popa ? Nie wiem, nie sprawdzam tego. Wyrzuciłem w kodzie wszystkie sys_write`y i dałem wszędzie makro "pisz". Teraz program działa dobrze, ale ma małe problemy z wczytywaniem elementów tablicy. Podam mu np 4 liczby do wczytania to pętla jedzie nawet gdy wczyta 4. Pewnie coś skopałem i do 100 by jechał ;p
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Bogdan (bogdro)
Date: Fri, 21 Mar 2008 11:55
Date: Fri, 21 Mar 2008 11:55
46 lines
3153 bytes
3153 bytes
Doleś pisze: >> Wyjasnilem Ci juz co masz nie tak, przejrzyj ten watek > Tak wyjaśniłeś mi i oczywiście dziękuję Ci za pomoc, ale znalazłem > przyczynę czemu program tak dziwnie się zachowywał. Zrobiłem sobie mały > test, to znaczy napisałem program który wyświetla byle jakie zdanie > zakończone naturalnie bajtem 0 (wyświetla przy pomocy wywołań jądra) Bajt zerowy jest niepotrzebny, bo podajesz długość. > i pobiera liczbę przy pomocy makra we32e, następnie pobraną liczbę zwraca > jako kod błędu i ja ją sobie odczytuję poleceniem echo $?. I co ? > Najwyraźniej gryzie się biblioteka z makrami przy jednoczesnym używaniu > konwencjonalnych wywołań jądra. Niemożliwe. Podaj przykładowy kod, wynik oczekiwany i otrzymywany. > Może przed każdym makrem powinienem dać pusha/popa ? Nie. Zmieniane są tylko te rejestry, które są opisane jako zmieniane. > Nie wiem, nie sprawdzam tego. Wyrzuciłem w kodzie wszystkie > sys_write`y i dałem wszędzie makro "pisz". Teraz program działa > dobrze, ale ma małe problemy z wczytywaniem elementów tablicy. Podam mu > np 4 liczby do wczytania to pętla jedzie nawet gdy wczyta 4. Pewnie coś > skopałem i do 100 by jechał ;p Pczyczyna ta sama, jak poprzednio: podajesz adres zmiennej przechowującej długość tablicy jako długość tablicy. Spróbuj: lea eax, [Array] ;at least read array`s items push eax push dword [number] ; <<<<<<<<<<<<<<<<< call readInputArray Swoją drogą, "lea eax, [Array]" to to samo, co "mov eax, Array". W ogóle najlepiej byłoby push dword Array push dword [number] call readInputArray -- 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
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
Author: Doleś
Date: Thu, 27 Mar 2008 23:01
Date: Thu, 27 Mar 2008 23:01
7 lines
1712 bytes
1712 bytes
Napisałem teraz ten program, poprawiając wszelkie błędy i w końcu z niemałą dumą początkującego mogę powiedzieć, że w końcu działa. Oto i kod źródłowy: http://paste.org/index.php?id=2445 Nie wiem czy kogoś to będzie szczególnie interesowało, ale stwierdziłe, że skoro poradziłem sobie przy Waszej pomocy to wypadałoby o tym poinformować :)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads