"Kursasm - FAQ"
Poniższy tekst jest listą 17 pytań, najczęściej zadawanych autorowi
kursu, przez czytelników. Każde pytanie posiada odnośnik do dalszej
części tej podstrony, która zawiera odpowiedź.
Dodatkowo, każde pytanie poprzedzone jest umieszczonym w nawiasie
numerem wersji, w której pojawiło się po raz pierwszy, lub było
modyfikowane.
Na wiele pytań, niestety, nie potrafię udzielić odpowiedzi, lecz
zamieszczam je poniżej, aby pytający na przyszłość wiedzieli, których
z pytań nie warto mi zadawać.
Odpowiedzi na pytania
Dla tych z czytelników, którzy posiadają kurs na płycie, lub od znajomych, podaję link do strony kursu w internecie: http://sezam.wanet.pl/kursasm/index.htm
Skorzystaj z formularza na stronie Lista subskrybentów i podaj tam swój email, lub napisz emailem informację do autora kursu, grzezlo@wanet.pl i zgłoś chęć zapisania się na listę.
Do tej czynności nie udostępniono na stronach kursu żadnego formularza - z kilku powodów, więc najsensowniejszym sposobem byłoby napisanie maila do autora kursu, z prośbą o usunięcie z listy.
Jeśli jakikolwiek z formularzy umieszczonych na stronie wydaje się nie działać, najlepiej wysłać e-mail do autora kursu, podając w jego treści informacje, które chciało się wysłać za pomocą formularza.
Powodów jest kilka. Najprawdopodobniej, pytanie to zostało już zamieszczone w tym faq, możliwe jest również, że twój serwer pocztowy nie odpowiadał a nie mam czasu wysyłać odpowiedzi kilkakrotnie, chociaż zwykle staram się odpowiadać osobiście na każdy list.
Jeśli jednak pytanie było ważne, to najprawdopodobniej odpowiedź na nie pojawi się w faq, lub jako rozdział kursu.
Cieszę się, że chcecie rozpowszechniać ten kurs w sieci. Jak byćmoże już pisałem, kurs może być (szczególnie w swej spakowanej wersji), powielany w dowolnej ilości egzemplarzy, kopiowany w dowolnej formie (elektronicznie, lub np. jako wydruk), pod warunkiem, iż nie został w żaden sposób zmodyfikowany.
Co się jednak tyczy jego publikacji na stronach www, to wydaje mi się, że nie do końca ma sens umieszczanie spakowanego kursu na waszych serwerach i zamieszczanie później linku do tego pliku. Znacznie prościej i z kilku innych powodów praktyczniej, byłoby umieścić na stronach link do kursu, np. w taki sposób:
<a href="sezam.wanet.pl/kursasm/index.htm">Kurs podstaw Assemblera by Grzegorz Złotowicz</a>
W ten sposób, link taki, odnosi się zawsze do oryginalnej wersji kursu, a najważniejszą zaletą takiego rozwiązania jest to, iż link będzie stale wskazywał najnowszą wersję kursu, czyli nie będzie konieczne sprawdzanie, czy strona uległa zmianie... Poza tym, unikacie konieczności wrzucania na waszą stronę dużego pliku (.zip) i miejsce to możecie wykorzystać w inny, ciekawszy sposób.
Turbo Assembler jest pakietem komercyjnym, toteż jego zdobycie za free, np. z internetu, nie wchodzi raczej w grę. Na potrzeby nauki podstaw i kompilacji programów kursu, proponuję skorzystanie z kompilatora Arrowsoft.
Każde pytanie, można oczywiście zadać, pisząc do autora kursu. Ta droga jest jednak często nieskuteczna, gdyż na wiele pytań nie potrafię odpowiedzieć. Wobec tego, polecałbym miejsce, na które (wiem z własnego doświadczenia), można liczyć. Miejscem tym jest usenet - grupa dyskusyjna pl.comp.programming - jednocząca Polskich programistów. Możecie tam pytać o wszystko, związane z programowaniem i z dużym prawdopodobieństwem - otrzymacie odpowiedź...
Niestety, na to nie ma rady. Faktycznie, Arrowsoft Assembler nie umożliwia kompilacji takich instrukcji jak Pusha i Popa, ale, jak pisałem w kursie, instrukcje te nie są kompatybilne ze wszystkimi typami procesorów, więc może jedyną sensowną metodą rozwiązania problemu jest - nie używać tych instrukcji, co dodatkowo sprawi, że program będzie bardziej kompatybilny (zgodny z większą liczbą procesorów).
Dekompilacja jest procesem dość złożonym, toteż w praktyce jej wynik jest bardzo obszerny i - przy dekompilacji dużych programów - czasem nieczytelny. Co się zaś tyczy freewarowych dekompilatorów w sieci, to jedyny, na jaki trafiłem, można znaleźć pod adresami: www Simtela, ftp Simtela. Program nazywa się "IDA", i najprawdopodobniej jest zapisany w pliku ida??fw.zip.
Niestety, nie wiem. Domyślam się, że tak, lecz nie znam szczegółów; poza tym, wydaje mi się to trochę mijać z celem - Windows jest środowiskiem obiektowym, toteż nawet, gdyby udało się pisać w nim w Asm, to należałoby odwoływać się do już istniejących interfejsów aplikacji.
Jak zapewne zauważyliście, ostatnio programiki przykładowe przeszły swoistą metamorfozę - wprowadziłem do nich trochę estetyki...
Mam nadzieję, że taki sposób zadowoli wszystkich - zarówno zagorzałych zwolenników, jak i przeciwników formatowania kodów źródłowych.
Niestety, muszę tutaj przeprosić wszystkich czytelników kursu, którzy oczekują na dynamiczne i liczne zmiany na stronie: główną przyczyną, dla których zmiany następują raczej rzadko, jest - oczywiście - brak czasu na zajmowanie się Assemblerem wogóle i kursem w szczególności. Podobnie rzecz się ma z poprawkami błędów raportowanych przez czytelników (za które wszystkim, którzy mnie informowali - ogromne dzięki, wbrew pozorom nie zapominam i co jakiś czas będę odświeżał archiwum listów od was i stosował się do zawartych tam sugestii).
Tutaj rzecz się ma podobnie jak z Windowsem - nie wiem, lub mówiąc ściślej - nie znam szczegółów. Wszystkim zainteresowanym polecałbym wszakże program NASM - Netwide Assembler - umożliwiający kompilację programu w Assemblerze dla Win16 i Win32, co się zaś tyczy Unixa - w formatach .OUT, .ELF i kilku innych.
Tutaj znów muszę przyznać się do ignorancji tematu - nie mam pojęcia o pisaniu w Asm pod Clipperem - żałuję, że nie potrafię zaspokoić ciekawości pytających o ten problem.
Sposób jest bardzo prosty. Demonstrację rozwiązania tego problemu znajdziesz w programie przykładowym. Przeczytaj uważnie, wszystkie zawarte tam wskazówki...
Jak piszę we wstępie do kursu - warto zacząć naukę Asm, dopiero, gdy zna się już jakiś język programowania, np. Pascal. W związku z tym, otrzymuję często pytania/sugestie napisania kursu Pascala... Ale dzięki - nie skorzystam:-))), sądzę, że zagadnienie jest znacznie bardziej rozległe a poza tym, jak sądzę, kursy takie są już w sieci (jeśli ktoś o czymś takim wie, niech da mi znać, zamieszczę linki).
Copyright by
Grzegorz Złotowicz
Form and Graphics: Michał Stanek