Kayıt: Aug 04, 2005 Mesajlar: 173 Nereden: Vault 35
Tarih: Fri Nov 18, 2005 2:21 pm Mesaj konusu:
yaklaşık 2 aydır assembly dersi alıyoruz ve şu an ödev olarak bir yılan oyunu yapıyorum ama kafama birşey takıldı benim dandini oyunum şu an 32k(exe'si) yer tutuyor yaklaşık 50 satır kodu var ama geçen sene pascal'da yaptığım ve 500 satrı kodu olan yılan oyunum 6k idi (exe'si) , bunun yanında devreci'nin sitesinde 3k'lık grafiği fln olan tetris oyunu var , bi açıklama getiren olursa sevinirim.
Kayıt: Aug 04, 2005 Mesajlar: 173 Nereden: Vault 35
Tarih: Fri Nov 18, 2005 5:35 pm Mesaj konusu:
Kod:
INCLUDE Irvine32.inc
.code
main PROC
mov eax,10000h ; EAX = 10000h
add eax,40000h ; EAX = 50000h
sub eax,20000h ; EAX = 30000h
call DumpRegs
exit
main ENDP
END main
eklediğimiz Irvine32 kütüphanesinden mi acaba 2 sayıyı toplayan programda 32k
Tarih: Tue Nov 22, 2005 12:02 am Mesaj konusu: kütüphane bence
assembly de yazdığın komutların ne kadar yer kaplıcanı tahmin ediyorsundur zaten, o zamn fazladan olan yer kütüphanenindir. Yapabiliyorsan onsuz yap. Ya da boyut sorun değilse bırak dursun kütüphaneden boyut artışı
1) kullanacagin degikenleri data segmentte tanimlamak yerine (normali bu biliyorum), heap alaninda tanimlarsan (masm'da bu ozellikle ise yaramiyor) onlari exende tutmazsin. Bu da belli bir oranda size'da kar demektir.
2) include ettigin library'den kaynaklanma olasiligi var
3) Kullandiign assemblerin ne oldugunu bilmiyorum. Ama default allignmentlara bir bak. Bir de import ettigin fonksiyonlarin referanslarini nasil tuttuguda onemli. Bunlarin hepsi assembler opsiyonlarinda yazar.
Cok ufak bir kod yaz ve bunu bir oncekini compile ettigin parametrelerle compile et. Bakalim exe boyutu ne oluyor?!
Kayıt: Aug 04, 2005 Mesajlar: 173 Nereden: Vault 35
Tarih: Tue Nov 22, 2005 2:24 am Mesaj konusu:
daha yeni öğrendiğimiz için kullandığımız kitabın yazarı olan irvine denen herifin kütüphanesini kullanıyoruz , aslına bakarsanız bu kütüphane olmadan bir assembly kodu nasıl derlenecek bir bilgim yok şu kod mesela "Irvine32" kütühanesi olmadan derlenmiyo(Masm) derleyincede 24kb geliyoki kütüphaneden kaynaklandığı ortaya çıkıyo , demekki ben daha işin temel kısımlarını bilmiyorum neyse zamanla öğreniriz heralde
Kod:
INCLUDE Irvine32.inc
.code
main PROC
exit
main ENDP
END main
bu arada yılanı baya geliştirdim,bizden sadece gezen,yem yiyen ve uzayan yılan istediler ben de PlayerVSComputer seçeneği ekledim 2 yılan kapışcak şimdilik yeme direk ulaşabilen bi zeka yazdım ama pathfinding olayı biraz zorlayacak gibi bakalım
Kayıt: Mar 13, 2003 Mesajlar: 188 Nereden: İstanbul
Tarih: Tue Nov 22, 2005 2:42 am Mesaj konusu:
oyun bitince bir yerine "irvine sağolsun" yazdırırsın herhalde
şaka bir yana, kodun boyutu masm'nin bu "insanları assembly'ye küstürmeyelim" bakış açısından kaynaklanıyor. daha sade çıktılar elde etmek için flatassembler'ı tavsiye ederim.
masm'in çalışma prensibini tam bilmiyorum ama herhalde include ettiğin tüm dosyayı assemble ediyor olmalı, yoksa bir int 21h için 25 kb gerekmemeli?
pathfinding konusunda da güzel bir iki örnek vardı, sanırım maxcode.com'da
bir bak istersen.
Kayıt: Aug 04, 2005 Mesajlar: 173 Nereden: Vault 35
Tarih: Tue Nov 22, 2005 3:28 am Mesaj konusu:
"flatassembler" önerin için teşekkürler levent , pathfinding için A* kullanıcam ama bana hantal bi yöntem gibi geldi gerçi ai konusunda pek bi bilgim yok genelde kafama uyduğu gibi yazıyorum , bu arada irvine amcanın selamı var herif kod yazmaktan erimiş gitmiş
Kayıt: Feb 14, 2003 Mesajlar: 94 Nereden: İstanbul
Tarih: Tue Nov 22, 2005 8:19 pm Mesaj konusu:
Bu irvine abinin sözkonusu kütüphaneleri benim okulun da bilgisayar laboratuarlarındaki masmlerde var,Assembly ortamlarında ağırlığı olan bir abimiz sanırım.
doğal olarak kodlama baya dandik oldu , heralde bi yılan oyunu için 3400 satır kod yazan ilk kişi olmuşumdur,ama bu yapay zekayı tutturamadım pek , A* denen metod böyle Pacman tarzı bi oyunda sökebilir ama bunda belli bi uzunluktan sonra yılan kendini kıstırıyo, bu işe uygun nasıl bir algoritma kullanılabilir yada böyle bi algoritma ztn var mıdır acaba
Bu forumda yeni konular açamazsınız Bu forumdaki mesajlara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız