kategoria: Asembler
[#1] Kto koduje w asm 68k ?
Tak z ciekawosci
Ktos potrafi kodowac w asm 68k ?

Pytam o jakis minimalny sensowny poziom, a nie o to czy ktos potrafi wyswietlic literke na ekranie.
[#2] Re: Kto koduje w asm 68k ?

@selur, post #1

Cześć.

Ja potrafię. Jestem po lekturze książek "Rodzina M680xx" Wojciecha Czyża, "Asm-One" oraz "Kurs asemblera dla początkujących" Adama Doligalskiego.

Jeśli chodzi o praktykę i doświadczenie to nie napiszę dema czy intra rodem ze sceny, bo nie miałem kontaktu z innymi koderami i nie mogłem się pisania tego typu programów nauczyć. Jednakże jakaś gra czy program w asm 68k nie stanowi już takiego problemu.

Podejrzewam, że znajdzie się tu jeszcze kilka osób na forum, które też potrafią pisać w asemblerze 68k.

Teraz ja zadam pytanie: szukasz pomocy w kodowaniu pod asm 68k czy szukasz kodera do swojej produkcji?

Ja w tym momencie nie pomogę Ci w pisaniu, bo jestem zajęty innymi projektami programistycznymi, które chcę ukończyć, jednak oferuję pomoc w postaci odpowiedzi na ewentualne nurtujące Cię pytania z dziedziny pisania w asm 68k.

Jeśli zaś chodzi o to, że wybierasz asm 68k, a nie AMOS to mogę Ci jedynie pogratulować słusznej decyzji! Asembler 68k jest bardziej kreatywny i więcej w nim ciekawego napiszesz.

[#3] Re: Kto koduje w asm 68k ?

@Minniat, post #2

zalezy do czego .. proste rzeczy - latwiej i mniejszym kosztem czasowym zrobisz w dowolnym innym jezyku niz asm.
W niektorych sytuacjach nie ma sensu uzywac armaty do muchy

np.Kalkulator :) bedzie to dla nas roznica czy dziaja oblicznie x ms szybciej ?;-]

inne rzeczy zwiazane z wyswietlaniem grafiki generowanej przez komp na pewno wydajnosciowo wiecej wycisniemy z ASM
kazdy klnie na Amosa - ale mimo wad mial tez pare zalet jak dla mnie
np zaladowanie obrazki i odgranie w tle modulu ...to parenascie linijek

na dzien dzisiejszy w wolnych chwilach pisze sobie w asmie demko (2 efekty juz sa w tym efekt ruchomej plasmy :) a frajda nie lada.. nie ma cisnienia na projekt wylacznie dla wlasnej satysfakcji



Ostatnia modyfikacja: 18.12.2010 08:38:12
[#4] Re: Kto koduje w asm 68k ?

@HOŁDYS, post #3

Selurowi pewnie chodzi o pisanie gry. Na Amidze 68k asembler do tego nadaje się najlepiej, nie bez przyczyny większość gier komercyjnych pisano w asemblerze, a tylko nieznaczną ilość w C. Ja z własnego doświadczenia też wiem, że pisanie w asemblerze o ile pracochłonne to daje wyśmienite rezultaty na Amidze 68k. Program wykonujący mniej instrukcji procesora = program znacznie szybszy.

Makroasemblery oferują teraz takie ułatwienia dla programisty, że pisanie w asemblerze staje się już bardzo wygodne.

Prosty kalkulator można napisać w C, ale jeśli chcesz jakieś złożone obliczenia w czasie rzeczywistym na Amidze 68k to polecam jednak asembler. Ogólnie w C można pisać, ale dla Amigi 68k, gdzie musimy w 1/50 sekundy przygotować ramkę to asembler jest jak znalazł.

P.S.
Gratuluję uzyskania efektów w pisaniu w asm 68k. Ja takiej ruchomej plasmy nie potrafiłbym zakodować.

[#5] Re: Kto koduje w asm 68k ?

@Minniat, post #4

Minniat bez urazy ale mam wrażenie, że albo czytałeś bardzo dawno albo słabo czytałeś rozdział o przyspieszaniu programu. W przypadku 68000 nie jest prawdą że jeśli program wykonuje mniej instrukcji to jest szybszy, spójrz tylko na rozkaz mnożenia ( może być bez znaku ) i załóżmy, że chcesz pomnożyć zawartość rejestru d0 przez cztery. Wygląda to wtedy tak

mulu #4,d0


a wersja o wiele szybsza wygląda tak

add.w d0,d0
add.w d0,d0


Sposobów przyspieszania jest oczywiście więcej, na przykład rozwijanie pętli.
Poza tym zdania o ramce, to nie rozumiem i domyślam się tylko o co Ci chodzi. Bo według mnie, nie ma czegoś takiego jak przygotowanie ramki albo ja nie znam czegoś takiego.

[#6] Re: Kto koduje w asm 68k ?

@asman, post #5

Czy czasem przesunięcie o dwa bity w lewo nie będzie szybsze? Zawsze to jeden rozkaz a nie dwa. Chociaż ilości taktów nie pamiętam, zresztą to też może zależeć od konkretnego modelu procesora.

A nawiązując do tematu wątku - ja kiedyś dużo programowałem w asmie 68k, również umiałem programować chipset OCS/ECS na poziomie rejestrów (copperlisty, blitter i tak dalej). Jak miałem Amigę z AGA to już przesiadłem się na język C... Teraz jednak sporo już zapomniałem i wyszedłem z wprawy.



Ostatnia modyfikacja: 18.12.2010 14:33:32
[#7] Re: Kto koduje w asm 68k ?

@asman, post #5

Trochę błędnie to podałeś, bo jeżeli wynik mnożenia nie zmieści się w słowie (word) to nie można używać add.w tylko add.l, przy czym high word musi być jeszcze wyzerowany, jeśli nie jest. Ale ogólnie to jest to dużo szybsze, choć zajmuje tyle samo miejsca w pamięci.
[#8] Re: Kto koduje w asm 68k ?

@G. Kraszewski, post #6

Czy czasem przesunięcie o dwa bity w lewo nie będzie szybsze?
Będzie wolniejsze o dwa cykle. Mam na myśli 68000.

Oczywiście wszystko zależy od modelu w 68060 mulu będzie szybsze. Tak na szybkiego znalazłem dwa linki
http://www.freescale.com/files/32bit/doc/reports_presentations/MC680X0OPTAPP.txt
http://www.easy68k.com/paulrsm/doc/trick68k.htm



Ostatnia modyfikacja: 18.12.2010 14:56:03
[#9] Re: Kto koduje w asm 68k ?

@G. Kraszewski, post #6

Przesunięcie o dwa bity będzie szybsze dla procesorów od 68020 wzwyż, w przypadku 68000 takie przesunięcie jest wolniejsze. Ale high word też musi być wcześniej wyzerowany.



Ostatnia modyfikacja: 18.12.2010 14:57:00
[#10] Re: Kto koduje w asm 68k ?

@Don_Adan, post #7

Faktycznie, hm... w tym przypadku wychodzi mi, czy będe przesuwał czy dodawał to czas będzie taki sam ( przy czym przesunięcie zajmie mniej pamięci ). zakładamy że highr word jest czysty, wtedy:

add.l d0,d0
add.l d0,d0

będzie tak samo szybkie na 68000, co
asl.w #2,d0




Ostatnia modyfikacja: 18.12.2010 15:06:07
[#11] Re: Kto koduje w asm 68k ?

@asman, post #5

Asman, mi chodziło o relację C - asembler w liczbe wykonywanych rozkazów. Kompilator C generuje znacznie więcej rozkazów niż możnaby uzyskać pisząc program w asemblerze (już pomijam fakt, że współczesne kompilatory generują zoptymalizowany kod, bo przecież mówimy tu o 68k). Optymalizacja kodu już napisanego w asemblerze to inna sprawa!

Zgodzę się z podanym przez Ciebie przykładem, operacja mnożenia jest tym wyjątkowym rozkazem procesora, który zajmuje dużo cykli i może być z powodzeniem zastąpiona przez inne instrukcje, dodawania lub przesuwania bitowego.

Sprecyzuję co rozumiem przez "przygotowanie ramki" - jest to po prostu przygotowanie do wyświetlenia kolejnej klatki animacji w jakiejś grze (ramka = frame), a taka klatka musi być gotowa do wyświetlenia co 1/50 sekundy więc mamy tyle czasu na jej przygotowanie (czyli wszelkie obliczenia i rozrysowanie kolejnej sceny).



Ostatnia modyfikacja: 18.12.2010 15:12:01
[#12] Re: Kto koduje w asm 68k ?

@asman, post #10

Jeżeli mnie pamięć nie zawodzi, w pierwszym przypadku będziesz miał 2x6=12 cykli, a w drugim 6+2x2=10 cykli. Byłoby tak samo jeśli byś użył asl.l, czyli 8+2x2=12cykli.



Ostatnia modyfikacja: 18.12.2010 15:34:58



Ostatnia modyfikacja: 18.12.2010 15:35:24
[#13] Re: Kto koduje w asm 68k ?

@Don_Adan, post #12

Osz, strzeliłem babola w tym poście. Powinno być asl.l.

@ Minniat - Teraz to rozumiem o co Ci chodziło. Dzięki za wyjaśnienie.

[#14] Re: Kto koduje w asm 68k ?

@Don_Adan, post #12

poza pewnymi oczywistymi optymalizacjami (przesuniecia vs owe mnozenie,dzielenie itp.) dzisiaj naprawde nie ma sensu bawic sie w liczenie cykli kodujac w asm68k. powod to uae, no chyba, ze ktos dzisiaj wybitnie celuje w gola 500 lub 1200:)

[#15] Re: Kto koduje w asm 68k ?

@1989, post #14

Obvious troll is obvious. Twój post można by uznać za sensowny gdyby nie powód, który podajesz...



Ostatnia modyfikacja: 18.12.2010 20:31:18
[#16] Re: Kto koduje w asm 68k ?

@strim, post #15

dodalem tez male ALE do powodu, bo widze sens liczenia cykli tylko wlasciwie w takim przypadku, mozna do tego ew. dodac jeszcze kolejne procesory na kartach turbo 68030/28 i 50Mhz (030 mozna uznac za ostatni szczegolny przypadek), 040/25 i 40Mhz, 060/50 i 66Mhz.

A popularnosc UAE jest nie do zakwestionowania.... mam na mysli pisanie nowych programow w asm68k, taki program takze na uae wykona sie szybciej i bedzie krotszy, wiec sens tego jest, tylko to liczenie cykli bierze w leb, szczegolnie wtedy gdy program nie jest na scisle wytypowana konfiguracje Amigi.



Ostatnia modyfikacja: 18.12.2010 21:03:03
[#17] Re: Kto koduje w asm 68k ?

@1989, post #16

Sens tego jest taki, że ktoś kto koduje w obecnych czasach, w a68k to robi to dla WŁASNEJ satysfakcji/frajdy/że potrafi. Zabrałem głos w tej sprawie, gdyż mam zamiar, kiedyś tam, pisać coś z wyżej wymienionych powodów.



Ostatnia modyfikacja: 18.12.2010 21:07:09
[#18] Re: Kto koduje w asm 68k ?

@Tomski, post #17

frajda i caly fun da ci tylko REALNA Amiga ;-]
UAE to syf ktory powinni zaorac ..jak dla mnie ;) nie uzywalem nie uzywam i nie bede uzywal ..

[#19] Re: Kto koduje w asm 68k ?

@Tomski, post #17

zdaje sobie z tego sprawe i sens kodowania w asm68k dostrzegam, tylko dzisiaj z tym liczeniem cykli to juz nie jest to samo co xx lat temu z powodu uae czy nawet natami.

[#20] Re: Kto koduje w asm 68k ?

@1989, post #19

Z jakiej literatury/manuali/tutoriali itp. korzystaliscie przy nauce asma?

(jak ktos ma tez linki to niech zapoda. Z gory dzieki)
[#21] Re: Kto koduje w asm 68k ?

@selur, post #20

"Rodzina M680xx" Wojciecha Czyża, "
"Kurs asemblera dla początkujących" Adama Doligalskiego

[#22] Re: Kto koduje w asm 68k ?

@HOŁDYS, post #21

Ja również uczyłem się z książki W. Czyża, później także z manuali Motoroli. Natomiast amigowy chipset poznawałem z książki wydanej dość gospodarczym sposobem, zatytułowanej bodajże "Mapa pamięci Amigi 500", nie pamiętam autora nawet. W końcu kupiłem w Eurece płytę "Amiga Developer CD 1.1".



Ostatnia modyfikacja: 19.12.2010 16:21:50
[#23] Re: Kto koduje w asm 68k ?

@selur, post #20

Z jakiej literatury/manuali/tutoriali itp. korzystaliscie przy nauce asma?

Wszystko co mi wpadło w ręce, czyli gazety i książki.
Gazety to: Kebab, C & A, Magazyn Amiga, Amigowiec.
A książki to: Kurs asemblera Adama Doligalskiego i opis Asm-One'a tegoż autora. Rodzinę mc680x0 Czyża czytałem pożyczonego od kumpla.

[#24] Re: Kto koduje w asm 68k ?

@selur, post #20

tutoriali


co do samych tutoriali to mozna poszukac w scenowych magazynach dyskowych na fatmagnus.ppa.pl, i moze na aminet dev/asm

[#25] Re: Kto koduje w asm 68k ?

@asman, post #5

Witam

A można nawet przesunąc bity w lewo dwa razy :) też będzie pomnożone przez 4, analogicznie z dzieleniem. Zamiast mul, div dać lsr, lsl, eh mogę nie pamiętać rozkazów to było ze 20 lat temu, jak kodowałem na demoscenie z kumplami :) aż się łezka kręci, linia Dudara, copperlist, itd...

W podstawówce napisałem pierwszą grę na amigę w asemblerze, eh co za czasy.....minęły bezpowrotnie :/

Pozdrawiam

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem