🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#1725
Author: Doleś
Date: Tue, 18 Mar 2008 22:04
29 lines
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
#1726
Author: Wiktor S.
Date: Wed, 19 Mar 2008 00:22
22 lines
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
#1727
Author: Wiktor S.
Date: Wed, 19 Mar 2008 00:23
26 lines
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
#1728
Author: Bogdan (bogdro)
Date: Wed, 19 Mar 2008 14:45
51 lines
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
#1729
Author: 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
Re: Sortowanie bąbelkowe ciągu znaków wczytanego z pliku
#1731
Author: Paweł Więcek
Date: Thu, 20 Mar 2008 18:52
18 lines
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
#1730
Author: Doleś
Date: Thu, 20 Mar 2008 19:09
32 lines
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
#1739
Author: Doleś
Date: Thu, 20 Mar 2008 19:12
37 lines
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
#1740
Author: Michal Schulz
Date: Thu, 20 Mar 2008 19:15
28 lines
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
#1734
Author: Michal Schulz
Date: Thu, 20 Mar 2008 20:15
13 lines
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
#1732
Author: Doleś
Date: Thu, 20 Mar 2008 20:18
17 lines
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
#1733
Author: Doleś
Date: Thu, 20 Mar 2008 20:28
7 lines
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
#1741
Author: Wiktor S.
Date: Thu, 20 Mar 2008 20:45
13 lines
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
#1736
Author: Michal Schulz
Date: Thu, 20 Mar 2008 20:53
29 lines
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
#1735
Author: Doleś
Date: Thu, 20 Mar 2008 21:17
21 lines
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
#1737
Author: Bogdan (bogdro)
Date: Fri, 21 Mar 2008 11:55
46 lines
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
#1738
Author: Doleś
Date: Thu, 27 Mar 2008 23:01
7 lines
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