logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak przekonwertować kod HEX na ASM lub C dla mikrokontrolera PIC?

areczkas 08 Sty 2006 20:36 2691 8
REKLAMA
  • #1 2160548
    areczkas
    Poziom 12  
    Posty: 56
    Drodzy koledzy prosze o rade. Jak przerobic kod hex na inna wersje mozliwa przeanalizowania ( asm, c ).
  • REKLAMA
  • Pomocny post
    #2 2160605
    Pituś Bajtuś
    Poziom 28  
    Posty: 934
    Pomógł: 137
    Ocena: 10
    MPLAB IDE :
    File->Import
    View-> Program memory
  • REKLAMA
  • #3 2161147
    areczkas
    Poziom 12  
    Posty: 56
    Wielkie dzięki właśnie o to mi chodziło...

    Za to mam kolejne pytanie, a co się stanie jeśli program był pisany w C? a ja posiadam wersje hex?
  • #4 2161520
    ko_rex
    Poziom 19  
    Posty: 253
    Pomógł: 38
    Ocena: 2
    Nie wyciągniesz nic więcej, poza deasemblacją (czyli zapisem asemblerowym kodu maszynowego). Nie licz na to, że zobaczysz kod źródłowy w C (chyba jeszcze nie wymyślili "de-C-lera", który byłby w stanie odgadnąć ideę programisty piszącego w C, bo tego nawet ludzie nie potrafią).
  • REKLAMA
  • #5 2161686
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    :arrow: ko_rex
    Zgadza się, jednak kompilatory C na mikrokontrolery bazują na pewnych blokach kodu napisanych w asemblerze. Na upartego możnaby takie bloki rozpoznawać i zamieniać na instrukcje w C. To taka dygresja tylko....
  • #6 2161689
    areczkas
    Poziom 12  
    Posty: 56
    Dziękuje bardzo za wszystkie odpowiedzi.

    Jestem w pełni usatysfakcjonowany.
  • #7 7051170
    szczav
    Poziom 2  
    Posty: 2
    a czy jest mozliwosc zobaczenia czegos wiecej niz kodu maszynowego, mysle tu o postaci assemblerowej ? napisalem program w assemblerze na '51 wgralem do procka, i teraz chcialbym wprowadzic kilka zmian w programie, a zgubilem gdizes oryginal, moge go jakos z procka odzyskac ?
  • REKLAMA
  • #9 7051968
    wzk
    Poziom 19  
    Posty: 259
    Pomógł: 22
    Ocena: 25
    Jeżeli używałeś instrukcji movc to najprawdopodobniej będziesz musiał ręcznie zamieniać fragmenty HEX w ASM. :D

Podsumowanie tematu

✨ Dyskusja dotyczy konwersji kodu HEX mikrokontrolera PIC na formę bardziej czytelną, taką jak asembler (ASM) lub język C. Najprostszym sposobem jest użycie środowiska MPLAB IDE, które umożliwia import pliku HEX i podgląd pamięci programu w formie asemblerowej. Nie jest możliwe odzyskanie oryginalnego kodu źródłowego w C z pliku HEX, ponieważ dekompilacja do C jest praktycznie niemożliwa ze względu na utratę informacji podczas kompilacji. Można natomiast wykonać deasemblację, czyli przekształcenie kodu maszynowego na asembler, co pozwala na analizę i modyfikację programu. W przypadku programów napisanych w asemblerze, które zostały wgrane do mikrokontrolera, możliwe jest odzyskanie kodu asemblerowego poprzez disasemblację, choć niektóre instrukcje, np. movc, mogą wymagać ręcznej interpretacji i korekty. Kompilatory C dla mikrokontrolerów bazują na blokach asemblerowych, które teoretycznie można rozpoznać i częściowo przekształcić, jednak jest to proces skomplikowany i rzadko stosowany.
Wygenerowane przez model językowy.
REKLAMA