Originally posted by skate@Sep 7 2005, 09:01 AM
Aslında "normal programlama" dediğin şey ASM'dir diyebiliriz. Diğer tüm diller ondan türediği ve ona dayandığı için bir programcının teoride en rahat anlaması gereken dil Assembler'dır. Ancak tabii bir de alışkanlık meselesi var. Sen senelerce C/C++, VB, Pascal, Delphi v.s. kullandıysan Assembler zor ya da en azından farklı gelebilir. ASM'nin programcılara kolay geldiği nokta şu. Ben C64'ün 6502 ASM yapısını çok iyi bilirim. Bu sayede x86 ailesine ya da Z80 (Spectrum) ASM'ye geçiş yaptığımda benim dertlerim şöyle sıralanabilir.
1) Bu ASM'de hangi registerlar var ve kaç bit?
2) Nasıl bir registera değer atar, o değeri hafızaya yazar ve bunları point ettirerek kullanabilirim?
3) Genel opcodelar hangileri? (bit shifting, or, and, xor(eor), jmp v.s.)
4) Loop komutları nelerdir?
5) Hangi flagler var ve hangi opcodelar ile kontrol edilebiliyorlar? (carry flag, zero flag, negative flag v.s.)
6) Makinenin genel hafıza adreslemesi, bank/segment mantığı nasıldır?
7) Özel hafıza adresleri (ekran adresleri v.s.) ve ROM adresleri nelerdir?
7 maddede sıraladım ancak elbetteki bunları öğrenmek vakit alıyor. Yine de öğrendikten sonra ASM ASM'dir, bu platformlarda da istediğimizi yapabiliriz.
Gelelim diğer dillere. MAX Script öğrenmeye çalış örneğin. Basit bir scripting dili ancak tamamen kendi notasyonlarına sahip ve 3-4 farklı dilin (basic, pascal, c, php v.s.) çeşitli izlerini taşıyor. Bu dili de sıfırdan öğrenmek assembler kadar zor bence çünkü herşeyi o dile özgü öğrenmek gerekiyor. Ancak diyelim ki eşit derecede MAX Script ve ASM biliyoruz. Elbette ki MAX Script'de çok daha hızlı code yazabiliriz. ASM'de ise "ne yaptığımızın tam olarak farkında olarak" daha uzun bir süreçte aynı code'u yazarız.
En kötü dil yapısı bence bazı basic dilleri gibi interpreted dillerdir. Bu dillerin oluşturduğu ASM code, en sıradan ASM'cinin dahi hayatta yazmayacağı kadar unoptimize bir sonuç çıkarır ortaya. Debug etmesi ASM tarafında imkansızdır. Özel debugging toolları geliştirmek gerekir.
[post=1621]Quoted post[/post]
[/b]
Yani seninki aslinda Pascal bilip C'ye gecmek gibi bise :)
Ama benimki sifirdan Pascal ogrenmek gibi bise :)
Originally posted by spaztica@Sep 7 2005, 01:10 PM
genelde asm ile scripting dilleri arasındaki temel fark şudur; asm herşeye temelden daldığından php'deki gibi yüzlerce library komutu yoktur. komut seti cpu'ya göre belirlidir; sana o komutlarla tüm istediğin herşeyi en temelinden yazmak düşer. aslında hamallıktır da; c++ / vb / .net gibi dillerde component ve library'lerin sağladığı imkanlara sahip olamazsın. ama buna karşın, makinanın anlayacağı ve ihtiyaca yönelik en optimize kodu yazmak da yapabielceklerin arasında. pek çok dil ve library'nin izin vermediği ölçülerde donanımın tüm nimetlerini kullanabilirsin -ki demoların ve oyunların çoğu bu gibi yöntemler üzerine kurulmuştur.
düşünce biçimi oalrak birden fazla dili kavradığında ise genel ortalamaları görmeye başlarsın; yani bunu şu dilde şöyle yapıyordum, bu dilde de ona benzer birşey olmalı diye yaklaşırsın. tabii burada devreye object-oriented ve runtime gibi terminolojiler girecektir devreye; ama zaten üst dillerin hepsinde bu gibi yapısal farklılıklar vardır. assembler'da hiç bunlar düşünülmez; interrupt'ların vardır, game ya da main loop adı verilen temel döngü etrafında herşeyi oluşturursun. haliyle bu yöntem biraz daha monotasking mantığındadır; ama multitasking ve windows ortamalrında çalışmak isteresen aracın asm değil üst diller olmalıdır. yani buradan dili, amacına uygun seçmek gerekir sonucu çıkıyor.
asm benim ilk göz ağrımdı; hala da lda, jsr gibi komutları oop'un cambazlıklarına, event ve trigger'lara tercih etmem. ama asm, purist bir dildir; herşeyi en temeliyle ele almak ve minimalist çalışmak için.
bence senin asm mi c mi diye tercihten ziyade ne yapmak istiyorum ben diye karar vermen ve ona yönelik yolu izlemen gerek. burada olduğuna göre dedemo olayında gözün var; ehh, asm'den ya da c'den kaçınamayacağın ortada. tabii basic'le de demo yazılır, yazılmaz değil; ama...
diğer bir mesele de compiler olayı; tabii ki üst dillerin hemen hemen hepsinin ürettiği makina kodu, optimize olmayacaktır. bunun da sebebi, compiler'ı yazan kişilerin tercih ettiği uyarlama yöntemleri. birebir aynı bir kod bu yüzden de a compiler'ında farklı bir filesize verir, b compiler'ında farklı bir size verir. haliyle dil seçiminden sonra bir de ide/compiler seçimin oluşacak (özellikle c++ gibi üst dillerde geçerli bu).
tüm yazıyı okuyunca aklıma gelenler bunlar. ama sayende sitede bu konuyla ilgili biraz bilgi birikmeye başladı.
[post=1625]Quoted post[/post]
[/b]
Bilgi icin tesekkur ederim.Benim ASM ogrenme durumuna girisim Demo ve Intro'lardan cok etkilenmem.Yani gorsel butun eserlerden etkileniyorum ama 4K'lik bir dosya icerisinde plasma efekti gormek ve muzik duymak beni cok cezbediyor.Belki bu demolardan daha guzel olanlari Flash ile daha kolay yapilabilir ama benim icin onemli olan CPU'nun kodu o anda grafige cevirmesi...O yuzden ASM ogranmek istedim.He ama ASM'yi kavriyamazsam ya daha baska bi dil ile gorsel birseyler yapmak istiyorum.
Amacim PC DemoScene ve bu benim meslegim degil hobim olucak.(belki ilerde meslegim olur).Bu amaca ulasmak icin ASM ogrenmeye calisicam.Cok zeki oldugumu iddia atmiyorum eger ASM ogrenemessem baska bi dil baska bi tool kullanicam.Kucuck de birsey olsa PC DemoScene adina biseyler uretmeye calisicam.Amacim budur amacima giderken karsima cikan zorluklara ve seceneklere gore dil,plarform cb belirlerim ve tabiki bu asamada daha deneyimli coder arkadaslarimdan fikir alirim.
Originally posted by Bakkada@Sep 9 2005, 08:46 AM
http://rapidshare.de/files/774293/ASSEMBLY...YNAKLAR.rar.htm (http://rapidshare.de/files/774293/ASSEMBLY_T_RK_E_KAYNAKLAR.rar.htm)
Arkadaslar bi cogunuz biliorsunuzdur belki ama TR bir ASM kaynagi buldum paylasayim dedim.Henuz ASM bilmedigim icin ne kadar faydali ne kadar degil bilemiyorum.Umarim isinize yarar
;)
[post=1638]Quoted post[/post]
[/b]
Lem uğraştıracaksın milleti password'ünü kırmakla RAR'ın :)
Şifre: Bilader