Je nejaká rozumná možnosť preložiť HEX kód z ROM do Asembleru? Je to asi 50kB pre procesor MC68HC16Z1. Aspoň nejakú úvodnú inicializačnú sekvenciu. Potrebujem zistiť, čo všetko si to zariadenie pri inicializácií kontroluje, aby som vedel hľadať chybu, prečo to zariadenie nenabehne.
https://www.nxp.com/docs/en/product-brief/MC68HC16Z1TS.pdf
Na adrese FFFF je reset vektor na štart programu, podľa inštrukčného setu si to vyskladaj, adresy periférií máš v datasheete. Má to jeden 16b adresný priestor.
Prepáč to je už HC16ka, to už má trochu inú štruktúru, má to banky pamäti. Reset tu je v banke 0 na začiatku, PC skáče na adresu ktorá je v 00002.
edit: bacha adr priestor je 20bitový.
No myslím si, že tohle není HEX z procesoru, resp. pro jeho naprogramování. BIN soubory jsou standardně image nějaké paměti, kde je nejen vlastní program, ale i různá nastavení.
HEX třeba pro PIC vypadá třeba takto. Je pak samozřejmě přeložitelný zpět do ASM, i když bez dobré znalosti assembleru je to neskutečná pakárna se v tom vyznat. Všechny proměnné jsou nahrazeny čísly registrů apod. I jednoduchý příklad ve vyšším jazyku má poměrně složité vyjádření v ASM.
Nie je to originál BIN, asi som to nevhodne pomenoval. Je to cez Arduino načítaný obsah M29F040B.
Ale už to začína dávať zmysel. Najprv som nechápal, čo znamenajú tie čísla na adrese 0. Takže po reštarte to ide na asresu 408 a pri nejakom inom blbom prerušení na adresu 400. Na 408 z toho zatiaľ lezú normálne inštrukcie. Na 400 je NOP a potom nejaké nezmysly? Už sa teším, jak sa do toho zahryznem cez dlhé zimné večery. Lepšie jak krýžovky, či sudoku.
Preštuduj si to adresovanie, niektoré inštrukcie pracujú s 16b len v rámci bloku, skoky budú 20b, to sa bude blbo prepisovať. Ale pôjde to. Nemáš tých 50kilo len nultý blok?
Že by na vytvoření rámce na lokální proměnné v zásobníku? A +2 by mohlo být o tom, jestli SP ukazuje na poslední uloženou položku nebo na prázdné místo v zásobníku.
Snažím sa rozlúštiť ten strojový kód. Zo začiatku to šlo celkom dobre, dokonca z toho vypadlo zopár užitočných informácií, ale potom začali nezmyselné inštrukcie a ja mám pocit, že robím niečo zle, že som asi niečo nepochopil.
sekvencia od adresy 04E0.
kód:
Load 0x06 => B
Transfer B => EK
Transfer (SK:SP) + 2 => ZK:IZ
Jump to Subroutine (tie dva riadky celkom dole)
Test D for Zero or Minus (v D je teraz 0x0001, takže nie je Zero)
Long Branch if Equal (čiže ak je Zero, čo nie je, takže nič, zbytočný kód)
Load 0x06 = >B
Transfer B => YK
Load 0x07FC => IY (ďalej nepoužité, prepísané o pár krokov nižšie)
Load 0x4D24 => D (ďalej nepoužité, prepísané o pár krokov nižšie)
Load 0x0000 => IX (ďalej nepoužité, prepísané o pár krokov nižšie)
Load 0x00 => B
Transfer B => XK
Load 0xAE88 => IX
Load 0x0000 => IY
Load 0x07FC => D
subroutine:
Load 0x0001 => D
Return from Subroutine
Tak může to být nějaká forma obfuskace kódu, ale stejně dobře to můžou být data, která ti disassembler chybně přeložil jako instrukce. Záleží na chytrosti a nastavení toho disassembleru.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.