Hala Bu ASM -> HEX işini anlamadım?

Başlatan Firzen, 14 Ekim 2018, 13:13:50

Firzen

Herkese Merhabalar;

Daha önceleri de sordum aslında ama hala aklımda aynı soru var. Ben örneğin herhangi bir dilde C/C++ PYTHON olsun kod yazıyorum. Bu programlar bir şekilde ASM kod üretip veriyorlar. Aynı işlem MCU kodları içinde geçerli. Onlar hatta bize HEX kodu veriyor.

Sorum şu örneğin benim elimde bir derleyici yok ve ben ASM'ye oradan da HEX koduna dönüştürmek istiyorum.  Gerçekten çok merak ettim bu işleri. Kendime ait derme çatma bir IDE yapamaz mıyım sadece 16F84A için falan?
Kararsız...

telbozan

 IDE (Integrated Development Environnement ) ler kendi başına bir işe yaramazlar.
IDE ler not defterinin çok daha gelişmişi kod yazma, renklendirme , ara bul, değiştir gibi işleri sağlar ve projeyi derleyiciye sürer.
Derleyici söylediğiniz gibi ASM ve hex kodları üretir. ASSEMBLER yazılımları ise not defterinde bile yazabileceğimiz asm kodları hex e dönüştürür. Sadece IDE tasarlayarak c/c++ kodunu ASM yada HEX e çeviremezsiniz. Ama basit bir ideyi c dinleyicisine bağlayabilirsiniz.

RaMu

Benzer bir şey yapmıştım bir kaç konudada benzer şeylerden bahsetmiştik.
Asm hex konusu için:
Pic için programming specification denen dökümanlarda bu konu ile ilgili bilgi var,
örnek olarak bir çalışma linki
http://danamlund.dk/pic_microcontroller_blinking_led_without_cheating.html

30 40 sene önce öğrenci olup derleyicisiz hex dosyası yazanlar vardır aramızda,
kısaca opcode lar ile uğraşıyorsun
anlaması zor değil ama bayağı amelelik yapıyorsun resmen.

Hatta üstüne hazır programlayıcı kullanmadan da yazdığın koduda pice aktarabilirsin.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

mufitsozen

Alıntı yapılan: Firzen - 14 Ekim 2018, 13:13:50sadece 16F84A için falan?

@RaMu  40 sene once boyle programlar yazanlar deyince cevap yazmak zorunda hissettim kendimi.


Yapabilirsiniz. Cokta zor olmaz. Bilgisayar muhendisligi ogrencileri icin 1 donemlik bir proje ile yapilabilir.

PIC 16F84A datasheet'den 7 bolumu dikkatlice inceleyerek oradaki tanimlara uygun bir sekilde HEX degerler ASMden uretilebilir.

Python, C vb yuksek seviyeli bir dil kullanilarak birkac hafta icinde yazabilirsiniz.

Microchip HEX formati extended Intel HEX formatidir. Icinde code, data, configuration bytes ve user ID bilgileri icerir. Bunun ile ilgili bilgiyide internetden bulmaniz mumkun.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

fahri-

#4
40 değilde 32 yil önce z80 kodlarını Asm bile yazmadan direk hex koda çevirip RAM a birer birer yükleyip çalıştırıyordum. MCU ile ilk tanıştığım yıllardı. Derlemek için değil derleyici bilgisayarım bile yoktu. Yani Asm kodlarını @müfitsozen hocamın dediği gibi kolaylıkla hex koda çeviren bir program yazabilirsiniz. Ben birkez denedim bunu. Çok zamanımı alıyor diye vazgeçmiştim yıllar önce.

Firzen

Nasıl bir program yazılabilir her koduna çeviren kafama oturmadı. Bu opcode vs daha yeni yeni tanışıyorum bu kavramlarla. Lisans okurken sadece c dili ile PIC PIC32 STM32 programlama öğrendik ne ASM nede başka bişey yok.
Kararsız...

fahri-

Build your z80 computer
Bu kitabı okursanız sorularınıza cevap bulursunuz diye düşünüyorum.
Insruction kodların anlatıldığı bölümde
Nette PDF i var

Firzen

#7
Tamamdır hocam inceleyeceğim.
Kararsız...

erkan614

çok basit aslında makinalar bizim latin harflerinden bi halt anlamazlar :)
o sebepten move komutunu sayısal binary bir karakter topluluğu ile ifade edersin ve onu flasha yüklersin
biz ise bu şekilde komutları ezberlemeyi sevmediğimizden programlama dillerini oluşturduk derlegicilerde bizim cümlelerimizi makina diline ceviriyor
mesela qr kod sen okuyamıyosun ama orda erkan614 yazıyor

OptimusPrime

https://donanimveyazilim.wordpress.com || Cihân-ârâ cihân içredir ârâyı bilmezler, O mâhîler ki deryâ içredir deryâyı bilmezler ||

foseydon

hocam biz bu konuda mesajlaşmıştık senle. kabaca üstünden geçersek, makineler sadece binary anlar. assembly ve C(ve diğer programlama dilleri) insanlar içindir, makineler için değil. insanlar daha kolay yazsın diye.

IDE dediğin şey birleşik geliştirme ortamıdır, yani metin editörü, derleyici, debugger vs. hepsini içerir ve senin erişimini kolaylaştırır. IDE yapmak mantıklı değil, ne senin amacına hizmet eder ne faydası olur.

bu işi kavramak istiyorsan, C standardını ve GNU C Compiler kaynak kodunu incele bence.

Firzen

Hatırlıyorum hocam da denedim senden sonra tabiri caizse elektronikçi deyimiyle 1in yol alamadım.
Kararsız...

mufitsozen

Alıntı yapılan: Firzen - 15 Ekim 2018, 18:08:57Hatırlıyorum hocam da denedim senden sonra tabiri caizse elektronikçi deyimiyle 1in yol alamadım.

@Firzen neden boyle bir calisma yapmak istiyorsunuz soyleyebilirmisiniz?

PIC 16F84A icin boyle bir program yazmak icin ben size yardimci olabilirim. Bu 3-5 soru cevap yada bir kitap okuyarak tek basiniza yapmaniz kolay olmaz.

Birde Sembolik Assembler dosyasindan hafizaya yuklenen HEX degerlere gelene kadar hangi araclarin kullanildigini ve bunlarin neler yaptigini en azindan kavram olarak bilmeniz lazim. Bilahare PIC 16F84A datasheetinin ustunden 5-6 yada daha fazla gecerek ve PIC 16F84A mimarisinin butun ozelliklerine vakif olarak bu araclari en basit sekilleri ile gelistirmeniz lazim.

Z80(yada 8080) ozelinde baslamaniz gereksiz yere bu is akisini zorlastirir cunku 8080 makina kodlari hem sayica fazladir hem de  degisik boylardadir, operandlara gore boylari degisir. Halbuki bildigim kadari ile PIC 16F84A icin makina kodlari sabittir ve instruction sayisida oldukca azdir. Bu yuzden yapacaginiz is daha kolaydir.

Ilk olarak yapmaniz gereken Assembler ile yazdiginiz bir programin LST dosyasini inceleyerek ayni HEX kodlari elle sizin yapmaya calismaniz. Bu yapmaniz gerekleri tam olarak anlamanizi saglar. Asagidaki linkte boyle bir egitimin bir ornegi var. 3.5 bolumdeki programi kendiniz elle yapmaya calisiniz, ondan sonra yapilmasi gerekenler daha kolay anlasilir hale gelecektir.

http://www.islavici.ro/cursuriold/conducere%20sist%20cu%20calculatorul/PICbook/3_chapter.htm



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

Firzen

işin aslı her haltı yüzeysel bildiğimizden. Nasip olursa 5 sene sonra resmi olarak akademisyen olacağım. öğrencilere gömülü sistem öğretirken hadi yazdık bakın led yandı demek istemiyorum.
Kararsız...

memo333

Alıntı yapılan: RaMu - 14 Ekim 2018, 16:56:3330 40 sene önce öğrenci olup derleyicisiz hex dosyası yazanlar vardır aramızda,
kısaca opcode lar ile uğraşıyorsun
anlaması zor değil ama bayağı amelelik yapıyorsun resmen.

Hatta üstüne hazır programlayıcı kullanmadan da yazdığın koduda pice aktarabilirsin.

Lise sonda 2005/2006 yılında 6802lere elle keypad aracılığıyla opcodeları yazardık.. Branch hesapları vs.. Acayip eğlenirdim.

40 ne ya o kadar yaşlı değilim  8-)
Gömülü Linux Notları --> http://linuxedu.xyz/