hex kodu ile ilgili bir soru..?

Başlatan bulut_01, 15 Ocak 2014, 21:22:57

bulut_01

iyi aksamlar pic proje ailesi bir sorum olacak elimizde bir hex kodu olsun sadece bu hex kodunu asm cevirerek bu kodların işlemcıye neler yaptırdıgını anlayabılırmıyız ve hangi tür işlemciye ait oldugunuda bilebilirmiyiz.kısacası elımızdekı hexin işlemcıye neler yaptırdıgını anlamak ne kadar mümkün.? bu konuyu hep merak etmişimdir.
YENİLMEZ..

barisertekin

#1
Şöyle düşünelim mesela 8051 için bir derleyici yazıyoruz.

Assembly olarak yazdık.
Bu kodları Op-Code ve Operand'lara çevireceğiz.
Hex olarak mikrodenetleyiciye yazacağız.

Keil'in sitesinde komutlara karşılık gelen Op-Code'lar  ve Hex karşılıkları verilmiş. Hatta kaç çevrimde çalıştığı gibi tüm gerekli bilgiler mevcut.
http://www.keil.com/support/man/docs/is51/is51_opcodes.htm

Yukarıda anlattığım aşamaları tersten yapacağız. Yani disassembler.
Büyük ihtimalle bunu yapan program vardır. Ben şu an mantık yürütüyorum.

Kolay gelsin.

FEHMİ_ASM

#2
 Islemcinin cevresinde ne var biliyorsanız, ISIS bunun icin var zaten. Bilmiyorsaniz, port cıkıslarını gözlemleyebilirsiniz.
Hz.Hamza'nın Belinde İki Kılıç Duruyor ! Attığı Her Adım Bir Kalbi Durduruyor ! Ey Hamza ! Gördüğün Hiçbir Şeyden Korkmazsın , Bu Doğru Ama Heybetini Gizli Tut , Yürüyüşün Ölümü Korkutuyor !  İşte Hz.Ömer ve Hz.Ali , Biri Hattaboğlu , Biri Haydâr-ı Kerrar ! Ve Kolkola Ölümün Ağzına Giriyorlar !  Azrai

bulut_01

şema yok donanım yok hiç birşey yok sadece bir hex var ve onu yorumlayarak o hex in bir devrede neler yapabileceğini bilmek mümkün mü dediğim olay budur.kısacası hex yorumlayarak devre ne iş yapar onu çözmek.
YENİLMEZ..

barisertekin

Dediğim gibi araştırmanız gereken konu Disassembler

Linkte Hex kodundan Assembly koduna dönüşüm gerçekleştirilmiş.
Sonrasında kodu yorumlayacaksınız. Kullanılan komutlardan hangi işlemciye ait olduğunu sezeceksiniz.

http://www.onlinedisassembler.com/odaweb/

bulut_01

Alıntı yapılan: barisertekin - 15 Ocak 2014, 22:11:50
Kullanılan komutlardan hangi işlemciye ait olduğunu sezeceksiniz.

bu kısmı nasıl yapacaz peki  :)
YENİLMEZ..

barisertekin

İşlemciye neler yaptırdığını anlamak için hangi işlemcinin komut seti olduğunu bulmak çok şart değil.

Sonuçta atıyorum jne komutu(jump if not equal) dır her yerde. Hangi işlemci olduğu çok önemli değil.

Nasıl sezeceğiz sorusuna gelirsek.
Böyle göze kıl görünen bir komut arayıp onu google'da arıyoruz :) Yavaştan işin rengi belli oluyor. Ama her zaman anlamak mümkün değil.

RaMu

#7
Kod pic için yazılmışsa
MPLAB ı açıp > file menüsünden > import seçilir
burada asm karşılığı görülmek istenen .hex dosyası gösterilir-seçilir,
> sonra view menüsünden program memory seçilir bu kadar
artık program memorydeki sırasıyla asm komutlar görülmektedir,
opcode hex, machine, sembolic den en insana yakını sembolic dir
bunu seçersen açık olan menüde, daha rahat anlayabilirsin kodları.

Ama hexden asm ye dönüşmüş koddan birşey anlamak çok zordur,
heleki kod asm ile yazılmamışsa dahada zordur,
aslında misal yanına açıklama yazılmamış asm kodu anlamak dahi hayli zordur
bazen yanına açıklama yazılsada o asm kodun ne yaptığını anlamakda gayet zor olur
yani zor ama imkansız değil aslında
hexden programı okuyup düzenleme yapan biliyorum, ticari bir proje için yapmış.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

z

Sudoku cozen, puzzle ile oynayan asm yi de cozer.

Bulmacaya meraki olmayan asm yi de yapamaz. Ayni sey.

Cani tatili, sikitiya gelemeyenler asm ile ugrasamaz.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com