Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

10bit to 8bit ?

Başlatan Maxim, 14 Aralık 2009, 11:16:01

hasangurlek

Alıntı yapılan: "azimli"
-10bit adc sonucunu 2 bit sağa kaydırmak,
-10bit adc sonucunu 0,25 rakkamı ile çarpmak  
-10bit adc sonucunu 4 e bölmektir.

Sırasıyla yaptığınız bu 3 tavsiyenin farklılıkları nelerdir ? 3 ü de aynı işi yapmıyormu ? datayı 2 bit sağa kaydırmak, 4 e bölmek veya 0.25 ile çarpmak zaten 4 e bölmek değilmidir ?

Alıntı yapılan: "azimli"Microchip firmasının 16 bit ve 32 bit yeni nesil işlemcilerinde üreticisinin sunduğu asm dili tek iken.

bu işlemcilerin C derleyicileri çeşitli olmaktadır.

asm dil desteği tek olmayacakmı ? Kaç tane farklı assembly dili ve assembler derleyici tipi varki farklı seçenekler bulunacak ?

C bu kadar esaslı bir dil olduğu halde niçin tek bir standarda sahip değil ? Niçin MicroC, C18, Hi-tech (PC tarafında C, TurboC, C#, C++)vs. bir sürü derleyicisi var ? Elbette microchipte diğerleri gibi her firmanın C si için farklı derleyicilere destek sunmak zorunda.

Alıntı yapılan: "azimli"isteseler asm yi komple aradan çıkarıp direkt C derleyici kodları üzerinden işlemci hex makina kodlarıda üretilebilirler asm yi arada bir yerde bile göremeyebilirsiniz.bu günlerde gelecektir tabiki ama daha var.

Kaç donanıma C ile ulaştınız ? fonksiyonları cdecl olan bir dll dosyasına hiç stdcall çağrısı ile ulaşmayı denedinizmi ? Caller ve Callee tanımlarının neyi ifade ettiğini, CallingConvention'un ne olduğunu, cdecl, stscall, fastcall, safecall vs. çağrılarının bellek kullanım mantıklarını biliyormusunuz ? WDK, DDK'in ne olduğunu biliyormusunuz ? Hiç donanım sürücüsü yazdınızmı ? Herhangi bir windows APIsini kullandığınız dil içinde declare etmeden direk kullanmak zorunda kaldınızmı ? Bunlara benzer olaylara girdiğinizde assembly nin düşündüğünüz gibi bir geleceği olmadığını kavrayabilirsiniz.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

azimli

amacım asm olmaz olmazdır illa C den önce olmak zorundadır mantığını yanlış bulduğum için kendimce bunun yanlışlıklarını ortaya koymaya çalıştım.

öncelikle şöyle cevap vereyim Microchip firmasının asm derleyicisi tek dir demek tam doğru değildir asm kod yazımları aynıdır demek belki doğru olabilir ama bunu asm yi iyi bilene sormak gerekir MPLAB IDE altında ilgili işlemcinin ilgili derleyicileri seçimi mümkün burda asm32, asm30,pasm gibi seçenekler işlemci modeline göre seçilebiliyor.

zaten 8 bit bir 16F-18F serisiyle 16 bit bir dsPIC yada  PIC24H serisinde aynı sayıda komut kümesi bulunmamakdadır 8 bitlerde 30-35 civarıyken
16 bitlerde 84 tane olabiliyor 32 bitte dahada fazla olması en doğalıdır zaten.

işlemcilere göre asm derleyicileride çeşitlilik gösterir.
araştırmadım ama eminim asm ninde özel firmalarca yazılmış derleyicileri yüklense MPLAB IDE altında proje oluşturulurken seçilebilir ben şu asm derleyicisinide kullanacağım diye.

ben ayzınızın sonuna doğru yazdığınız çok şık ifadeli işleri yapabiliyor veya yapamıyor olabilirim konu bu değilki benim yaptığımı söylediğim ve savunduğum görüş belli onlardan başka ben uçak da süremiyorum uçn veya yüzen su altına dalan nesnelere yönelik yazılımda yazmadım vesaire daha çok şeyler ilave edilebilir.

ben C olmazsa olmaz değildir birileri asm bilinse böyle olmazdı görüşüne karşı olduğumu bildiriyorum.

siz dersenizki bu görüş doğrudur asm olmazsa olmazdır bak bunu tartışırım yazdığınız bir sürü işi yapıp yapmamamın ne önemi varki bende yazarım bir sürü şey sizde onları yapmamış çıkabilirsiniz şık kelime tabirinden birazda bunları kastediyordum aslında.

konuşduğum alandaki işlemci modelleri ve derleyicileri ksıtlıdır bunlarla ilgilendiğimden bunlarla ilgili görüşümü bildiriyorum aslında çok da önemli olmamasına karşın asm yi çok büyük gösterenlere karşı duruyorum bu şekilde bu işlere başlarken başında beni yanlış yönlendirenler oldu vakit kaybettim işe yeni başlayan birisi varsa yada yolun başında çok yol katetmemiş birisi yanlış yönlenmesin diye yazdım asm olmazsa olmaz değildir C ilede işler çok güzel olur hemde asm den daha etkin ve hızlı bir şekilde diyorum.

bunu derkende şu işlemci ve şu derleyiciler diyip sıralıyorum birisi benim ismini yazdığım işlemci ve derleyiciler ile asm den daha etkin ve hızlı çalışan kod yazılıp çalıştırılamaz derse onunla bu konuyu tartışırım yazmışsınız oraya bir kaç süslü kelime onları bilsem ne olur bilmesem ne olur savunduğum konu belli açık ortada duruyor.

amacım asm yi kötülemekde değildir aslında yaptığım çalışmalar ve alanda asm nin vazgeçilmez olmasını savunanlara yapılan ufak hatalarda bunun asm eksikliğine bağlanmasına karşıyım ben.

her dil onu en iyi kullanan için iyidir.ama birisinin artık bu sahatten sonra
belirli model işlemciler için savunulacak tarafı kalmamıştır.

bir sayıyı 4 bölmek ile 2 bit sağa kaydırmak matematiksel olarak aynı sonucu verir şu anki C derleyicimdede aynı kod üretiliyor ama kullandığım daha önceki derleyici modellerinde böyle değildi derleyici daha farklı bir yol takip ediyordu.

baktığınızda işlemcinin bölme yapabilme yeteneği varsa bölme ve çarpma işlemlerindede daha farklı yollar takip edilebiliyor bu örnekde belki sonuç bariz ıspatlanmayabilir ama ben kendimden biliyorum işlemciye bölme yaptırmaktansa çarpma yaptırmayı tercih ediyorum ama bazende bölme şart olabiliyor orda kaçış yoksa tabiki bölme işlemi yapılmalıdır.

verilen örnekde verdiğim sıralamayı hala savunuyorum sonucun matematiksel olarak aynı kapıya çıkması işlemcinin o işlemleri herzaman aynı şartlarda yapıyor olmasını gerektirmez.

ilk işlemcilerde bölmenin bir sayıdan bölünmek istenilen rakkamın sürekli çıkarılması ve çıkarılmadığı durumda işlem basamaklarını yansıtması şeklinde yapıldığını öğrenmiştim ama şu anki modellerde bölme ve çarpma işleminin komut yürütme saykılları bellidir ve çarpma daha az saykıl tutar diyebilirim.

işte zaten asm yi C ye karşı savunulur gösterilende bu tür temellerden doğuyor zannediyorlar C yi bilen biri yaptığı işlemlerin işlemcide nasıl yorumlanacağından habersiz işlem komut saykıllarından bi haberdar sayıların bitsel değerleri ve kapı-mantık işlemlerinden bi haberdar zannedip bu işlemleri asm olarak göstermek isteyenler olabiliyor bu işler değilki asm demek bu işler asm nin tekelinde değilki.

birde ccs veya mikro c benzeri derleyicilerin kullanımında işlerin genelde fonksiyon ve onlara verilen parametrelerle kotarıldığını görüyor birde o fonksiyonların içini inceledimi C den soğuyor.

ben o dilleride savunmuyorum yanlış mantıklı tamamen insan kolay lık ama işlemci çalışma performansına kazık C dilleride var kabul ediyorum ama adam gibi C derleyicileride var hemde asm yi tümünden ortadan kaldırıp onunla hiç işinizin olmayacağı C derleyicileri bunlar.

işlemci teknolojisi ilerledikçe asm kullanımı ortadan kalkacaktır bir gün hiç ortada gözükmeyecektir hemde yakın bir zaman diliminde öyle çok uzun yıllar değil.

işler C dili üzerinden etkin yürütülecektir. C++ ve C# bu amaçda sonradan devreye girecektir C++ devrede zaten bir çok üst seviye işlemci markası C++ derleyicileri var.

çok çekirdeklerde C# devreye zamanla girecektir.

ama bu demek değildirki basic ve pascal tabanlı ve benzeri insana yakın dil derleyicileri ortadan kalkacaktır.

bunlarda olacak tabiki bunlarında ciddi hemde basic in çok cidddi kullanıcıları vardır ama bu manada insana çok daha yakın bir dil olduklarından ve C dene kullanımları basit olduğundan bunlarında popüleritesi devam edecektir.

birgün asm nin tamamen ortadan kalkacağına inanmayan varmı içinizde
yada hala verdiğim işlemci modellerinde ve derleyicilerinde asm den daha yavaş çalışan ve daha az etkin etkin kod yazılacağına

bak onunla konuyu tartışırız.

kendini yeni geliştiren arkadaşlara kötü örnek olamam lazım heleki asm ye yönlendirmek akıl kerı iş değil eğitimi bile verilmiyor artık bu dilin

bit bazındada en alt seviyedede en üst seviyede işler asm siz süper hız ve yeteneklerle asm yi aratmayacak tarzda yapılabilir.

ben yeni nesil işlemciler üzerinde bile hala asm dili savunucularının bir süre sonra çıkacak daha yeni işlemcilerde asm derleyici desteği tamamen kaldırıldığında ne diyeceğini  çok merak ediyorum şimdiden C ye iyi yönelsinler tavsiyesinde bulunabilirim katıldığım eğitim, gurup ve seminerlerde durum bu yönde gelişiyor çünkü.

C nin eksiği yoktur ancak onu kullanmayı beceremeyen vardır!

bende onu iyi kullanmayı becerenler gurubuna gireceğim günü beklerken habire kendimi yetiştirmeye çalışıyorum.

Eagle_Tim

Azimli yazızını özenle okudum çok güzel olmuş :)  

ama C ve Asm karşılaştırması hep uzayıp giden tartışmalar olmuştur. Konu nezaman bu noktaya gelse sonuç hep aynı olmuştur. Yüksek seviye işlemcilerle beraber bu işlemcilere asm ile kod yazmak gerçekten eziyete dönüştü..  Zamınımızda artık C öğrenmek, Asm öğrenmekten daha kolay ve işe yarar görünüyor.Ancak Asm bilen ve C öğrenen biri tam anlamıyla işlemciye hakim olabilir, Bu yüzden bende C çalışmaya başladım. ama şuda bir gerçek asm dilinin ortadan kalkması gerçekten çok zordur. windows 7 enson çıkan işletim sistemidir. ama yanlış bilmiyorsam asmyi hala aktif olarak kullanıyor :)

Bence asm basit bir dil gibi düşünülmemeli daha çok herşeyin merkezi, çıkış noktası gibi düşünülmeli, böylece ortadan kalkmasının ne kadar zor olacağını kavramak daha kolay olabilir.

Asmnin üzerine C koyabilirseniz bence en iyisi budur derim iyi çalışmalar..
Software and Hardware Design...

wsxwsx

MPlab son versiyonunda anlayamadığım bazı  işler oluyor. C Kod hiç asmye dönüşmeden hexe dönüşüyor gibi .

Aslı var mıdır? bilen biriaçıklasa da öğrensek. Çünkü illa asm kod isterim derseniz bir yerlerden seçmek, ayar yapmak gerekiyormuş. bundan sonra da hex ayrıca asmye dönüşüyor muŞ

Eagle_Tim

MPLAB IDE 8.40 ve hi-tech 8.65 kullanıyorum ama böyle bir olay henüz  göremedim yada yanlış anlamışta olabilirim  :)  Derlediğim kodun asm karşlığı neye denk geliyor, hangi komut nasıl bir asm koda karşılık geliyor diye program memory ve disasemblyden izliyorum.. kaldıki c nin içindede asm yazımına olanak veriliyor c direk hexe dönüşüyorsa buradaki asme bölümlere ne oluyor ?
Software and Hardware Design...

Klein

Alıntı yapılan: "Eagle_Tim"MPLAB IDE 8.40 ve hi-tech 8.65 kullanıyorum ama böyle bir olay henüz  göremedim yada yanlış anlamışta olabilirim  :)  Derlediğim kodun asm karşlığı neye denk geliyor, hangi komut nasıl bir asm koda karşılık geliyor diye program memory ve disasemblyden izliyorum.. kaldıki c nin içindede asm yazımına olanak veriliyor c direk hexe dönüşüyorsa buradaki asme bölümlere ne oluyor ?

C kodlar illa ki ASM ye dönüşecek diye bir kural yok.  
Sonuçta ASM dediğimiz şey, hex kodların   kelimelerle ifade edilme şekli. ASM aslında bizim için var. biz hex kodlarla uğraşmayalım diye.  Ama bir derleyicinin böyle bir sorunu yok. Doğrudan hex kodlara da dönüştürebilir , veya bir tampon dosyada asm kodlara dönüştürüp , assmbler programını çalıştırıp hex kodlara çevirir sonra da o dasyayı silebilir.
ASM dosya oluşturmak için derleyicinin ayarlarından bu özellik açılmalıdır. Bazılarında varsayılan değer olarak açık gelir , bazıarında siz açarsınız. ama muhakka bu ayar vardır.

Eagle_Tim

Olayı yine tam anlayamadım kusura bakmayın :). MPLAB ın hangi versionuna ait olursa olsun;
Program memory açılıp kapanan bir özellikmidir ? üzerine yüklediğiniz derleyici farketmez MPLABın izin verdikleri içersinde,  Program memory bölümü opcode ve asm olarak sabittir diyebiliyorum, burdaki kod asmden başka bir kod olabilir mi ?  
yada bu bölümde opcodenin yanında C komutlarını nasıl görüyoruz :D
Software and Hardware Design...

Klein

Asm kodlarının ve C kodlarının bir arada göründüğü dosya genellikle *.LST  dosyasıdır. uzantı her derleyicide aynı olmayabilir. Asm kodlarının yanında C kodlarını da gösterme, opsiyona bağlı olabilir.

Eagle_Tim

evet şimdi anladım ben dosya olarak değilde doğrudan derlemeden sonra program memoryden izlediğim için olaya biraz yandan bakmışım sanırım :)
burda ayrıca progrmın bulunduğu dosyada oluşacak bir belge  söz konusu anladığım kadarı ile iyi çalışmalar..
Software and Hardware Design...

azimli

şu anda son Microchip MPLAB IDE de diğer C derleyicilerini bilmem ama Microchip in kendi C30,C33,C32  C derleyicilerinde derlenen kodların asm dönüşümü yapılıp ondan sonra hex çevrimi oluyor yani asm kodları görünüyor.Ama bu şimdilik gelecekte asm yi aradan komple çıkarma planları da var.

c veya asm program yazımında ben atın gitsin asm yi işe yaramaz demeye çalışmıyorum.diyorumya kendisini çok fazla bilmiyorum ama iyi bilen çeşitli arkadaşlarla ve bu işin dersini veren hocalarla ortalama genel konularda yarışırcasına asm ve c kod denemeleri yaptık çalıştırdık ve ayrıca Microchip seminerlerinde de bu konuyu irdeledik edindiğim sonuçlar.

kimse bana ismini verdiğim işlemci modellerinde ve c derleyicilerinde yazılacak,derlenecek ve işletilecek programdan asm kodlarının işlemci üzerinde daha hızlı çalışacağı noktasında ve mantık, matematik ve bit bazında işlemlerin asm tekelinde olduğunu söylemesin ona itirazım var.
geçti o günler baştan biri bir söylemde bulunmuş onu sürdürüp gidiyorlar.

bu iş şuna benziyor askeriyede işler nasıl devam eder bilirsiniz 30 sene önce uçak düşüren ama şu anda bir helikopteri vurmaktan bile aciz sitemlerin hala kullanımı öğretilir ve eğitimi verilirya hemde bu işe tabur bölük ayrılarak halbuki ordaki askerler hariç herkes bu işin böyle olduğunu bilir ama eğitim çizim anlatım herşey o sitemin uçağı düşüreceği üzerine kurgulanır ve ciddi eğitimler verilir aynı şey 80 model radarlardada var artık o radarlar bir çok uçağı ve füzeyi göremiyor ama hala ciddi eğitimler verilir.

işte buda ona benziyor,

2006 dana sonra üretilen microchip 16-32 bit yeni model çiplerde ve kendi derleyicilerinde dengeler c yönünde bariz bir şekilde değişti.

ama ben ne yapayım amcam hala pic16-pic18 serisi dışında işlemci görmeyip microchip 16-32 bit işlemciler için geliştirilen c derleyicilerinden bi haberdarsa onun dünyesının gerçekleri onlar benimkiler bunlar.

herkese iyi çalışmalar başarılar.

Eagle_Tim

geçen gün hi-tech c nin pdfini incelerken şunu gördüm. İşin tam olarak nasıl yapıldığını herkesin görmesi açısından paylaşmak istedim..

Software and Hardware Design...

M_B

Bir derleyicinin acık kaynak kodlarını gormek ısteyenler olursa
http://www.casadeyork.com/jalv2/
linkteki

Sources  kısmında bulunan
archive/beta/jalv24m-betasrc.zip
dosyayı ındırip icine bakmalarını öneririm. En azından fıkır sahibi olunur.
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet