ASMnauka_ napisał: Jednak nie działa jak należy

Tak się nie pisze algorytmów, szczególnie na etapie nauki. Zaczynasz od danych i algorytmu, a nie od kodu.
Przykład (mam nadzieje że prawidłowy):
1. pobierasz pierwszą daną ciągu
2. pobierasz pierwszą daną wzorca
3. porównujesz, jeśli równe skok do 7
4. pobierasz następną daną ciągu
5. jeśli ciąg się kończy, nie ma danej, koniec
6. porównujesz, jeśli różna skok do 4
7. zapamiętujesz miejsce ciągu (np do rejestrów r14,r15) i jeśli trzeba początek wzorca
8. pobierasz następną daną ciągu
9. pobierasz następną daną wzorca
10. jeśli wzorzec się kończy, znalazleś, początek jest w r14,r15 koniec
11. porównujesz, jeśli równe skok do 8
12. przypominasz sobie poczatek ciągu (odczytujesz np z r14,r15) i jeśli trzeba danych
13. skok do 4
I takie opisy powinieneś mieć przy kodzie, a nie takie jak:
ld R16 , X+ ; załaduj znak ze zmiennej do rejestru R16
Przecież każdy kto zna asm, wie że powyższa instrukcja wpisuje dane do r16.
Tylko jakie dane? Wzorca czy ciągu? A może jeszcze inne? No z opisu nie wiadomo.
Bez tego nikt ci nie pomoże nawet jak będzie chciał.
Podstawa to wiedzieć:
- gdzie są dane
- jakie te dane są
- co z danymi robić
- jaki ma być wynik operacji
Danymi nie jest "znak zmiennej", bo może chodzi o znak plus czy minus? ale np. "pierwsza dana wzorca"
Kolejna rzecz, to kolejność pobierania danych i testowania czy dane sie kończą czy też nie.
A to zależy od typu danych, a tych również nie podałeś.
Założyłem że używasz ciągów zakończonych zerem.
Wniosek, przy programowaniu istotna jest każda, ale to absolutnie każda drobnostka.
Piotrus_999 napisał: To jest skutek uczenia się jako pierwszego języka asemblera. Ja nie neguję sensu znajomości, ale dopiero jak się trochę nauczy wymyślać i kodować algorytmy w czymś wyższego poziomu.
Nonsens, trzeba mieć po prostu dobre źródło nauki.
Faktem jest że wraz ze złożonością algorytmu, w C piszę się sprawniej,
nie trzeba myśleć o pamiętaniu gdzie dane są, że należy je skądś odczytać itp. itd.
I to jest główny powód przemawiający za pisaniem w C
No, chyba że ktoś jest mistrzem asemblera.
Zdaje się, nawet są jakieś kody mp3 w asm na x86.
Poza tym, nie każdemu dany język musi spasować. Mi np. C++ kompletnie nie podchodzi.