Assembly ve C arasındaki farklar nelerdir ?

Başlatan kaypic38, 09 Ocak 2012, 19:05:01

kaypic38

Ben pıc programlamaya yeni başladım aşağı yukarı 8 ay oldu ve assembly çalışıyorum internetten projeleri inceliyorum ve genelde C dili kullanılıyor acaba C dilinin avantajı nedir neden C dili tercih ediliyor ve farklı farklı C çeşitleri gördüm CCS C,C++,C sharp vs bunlar nedir hangisi mikrodenetleyiciler için bu konular hakkında yardımlarınızı bekliyorum şimdiden teşükkürler.
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

Kabil ATICI

Basitçe söyle diyeyim, macro kavramını biliyorsunuz. Küçük kütüphaneler halinde yazılmış kod parçaları. İşte bunların bir program halinde kodlar ile kullanılabildiğini düşün. Bu kodların C ile uyumlu  halde olduğunu düşün. İşte olay bu.

Sonuçta bu işin ilk hali makine kodu biz bunu anlamıyoruz. Onun en yakını  assembler. Ama herkes bunu kullanamaz. Onun yerine biraz daha  insanların anlayabileceği hale getirilmiş hali olarak:
C dili.  Aynı şekilde derleme için kullanılabilecek şekilde çeşitli c adı altında oluşturulmuş derleyiciler. (kendine göre üretici için oluşturulmuş yazılımlar)

Bu bile karmaşık geldiğinden kendi çapında basic bile kullanılıyor.

Yazılan dil hangisi olursa olsun sonuçta oluşturacağı makine kodu.

Kullanılan dil programı yazan kişiye kalmış...

kolay gelsin...
ambar7

kaypic38

Çok teşekkür ederim anladım C dili daha anlaşılır assembler'a göre ben anadolu teknik lisesin son sınıfım hocam assembler için daha kolay dedi şimdi biraz kafam karıştı birde bir işlemi assembly ile 100 satırda yaparken C ile 10 satır da yapılıyor bu nasıl oluyor (sanırım bu sorunun cevabını öğrenmek için C bilmem gerekiyor) ve bu farklı farklı C çeşitleri (CCS C, C++, C sharp) nedir ?
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

fahri-

Hocan Assembly ile C yi hiç görmemiş anlaşılan. Ne hocası bunu söyleyen? Tarih hocası falandır heralde  ;D

Burak B

Bence hocası bu arkadaşa hava atmak istemiş. :)
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

kaypic38

Bilmem belki öyledir  :) ama gerçekten biraz açıklarmısınız neden assembler değilde c ve bu ccs c, c++, c sharp nedir ?
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

pwm.c

aslında Assembly ile hiç bir dil kıyaslanmaz. hepisinin ana dili Assembly dir. C ve Basic türleri Assembly kalıblarıyla oluşturulmuştur ve ikisini bir arada kullanabiliyorsunuz.
Assemblyin en büyük avantajı kullandığın microya tamamen hükmedebiliyor oluşun. daha az hafıza ve daha az donanım kullanarak daha fazla işi daha hızlı yaptırabilirsin.
paki asm basit mi? hayır değil. buna basit denilmesinin nedeni 35 komutun bulunması. bunları bildiğin zaman pragram yazabilirsin gibisinden düşünceler oluşabilir ama öyle değil işte. asm ile program yazabilmek için kullandığın chipin mimarisini çok iyi bilmelisin. ayrıca matematiksel işlemleri mantık komutlarıyla yapmak zorundasın. C ve basic dillerinde bu işlemleri direk yazıp işleyebiliyorsun. buna benzer nedenlerden dolayı C ve basicde daha az satır kullanıyorsun ama bu daha az hafıza anlamına gelmiyor. asm açılımı normalden çok daha fazla çıkıyor.
şimdi herkes neden C diyorlar diye merak ediyorsan bunun standart hale gelmesi diyebiliriz. 32bit chiplerin hafıları çok büyük olduğu için bunları asm ile hazırlamak epey zahmetlidir. bu nedenle asm yüzüne pek bakan olmuyor ama hangi dili ve derleyiciyi kullanırsanız kullanın yanında asm bilmek şart.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

kaypic38

Hımm verdiğiniz bilgiler için çok teşükkürler ben zaten PIC üzerinde çok iyi olmak istiyorum gerekirse yıllarımı vereceğim ve çok iyi olacağım yani hem assembly hemde C öğrenmek istiyorum birde sanırım söylediklerinizden şunu çıkardım örneğin 16f628a ile 16f877 nin asseblyleri farklı öylemi ?
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

mufitsozen

benzesim ile aciklamak demogojinin sinirlarini zorlar ama bu konu o kadar konusulduki bu ornegi vermem lazim.

Sordugunuz soru ispanak ile elma arasinda ne fark var gibi birsey. ikiside yenir! Ne zaman yenir vs diye isi derinlestirmenin anlami yok, kimi pirasa sever kimi elma kimide ikisinide sever yada sevmez!

insallah aciklayabilmisimdir!
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

kaypic38

Tamam belki basit bir konuyu biraz açtık ama kusura bakmayın da bir şeyi biliyorsan ve bilmeyene anlatmak istemiyorsan anlatmazsın bu kadar basit merak ettim ve sordum öğrenmek istiyorum her ayrıntısını sağ olsunlar yarımcı oldular bence çok yersizdi bu mesajınız ama yinede rahatsızlık verdiysek özür dilerim...
Bir şeyi gerçekten öğrenmek, yapmak istiyorsan o şeyi yapmışsın, öğrenmişsin demektir...

z

Assembly nin en büyük avantajı, programcı ile CPU arasına hiç bir şeyin girmemesidir. Ne yazdıysanız o derlenir ve CPU, yazdığınız kodları işletir.

Bu avantaja ihtiyacın varsa ASM öğrenmek zorundasın.

Bunu bir avantaj olarak görmüyorsan neyle yazarsan yaz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

C nin en büyük avantajı, programcı ile CPU arasına hiç bir şeyin girmemesidir. Ne yazdıysanız o derlenir ve CPU, yazdığınız kodları işletir.

Bu avantaja ihtiyacın varsa C öğrenmek zorundasın.

Bunu bir avantaj olarak görmüyorsan neyle yazarsan yaz.

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

z

#12
Mufit hocam hayırdır? Neden boyle yazdın?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

C'de, malesef yazdığınız komut satırının makine kodu karşılıkları sizin değil elin kodu oluyor. Yani CPU ile aranıza bir bariyer giriyor.

Bunu bir dezavantaj olarak görüyorsan ASM öğrenmek zorundasın.

Bunu bir dezavantaj olarak görmüyorsan neyle yazarsan yaz.





Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

sevgili @gerbay bu sorunun cevabi programci jargonuyla blub paradox'u diye aciklanan durum.

sayin @bunalmis bunun teorik aciklamasida sapir-whorf hipotezi.. (bence tabii... :-), sizin daha derin bir aciklama isteyeceginizi dusundugumden...
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.