mc 68000 :)

Jan 13, 2005 12 Replies

Witam!



Mam pytanie, moze to nie na ta grupe powinienem pisac ale nie wiem za bardzo na jaka a poza tym moze moze ktos z Was sie kiedys tym zajmowal. Mam eproma ktory zawiera programik do MC68000. Chialbym go zdisasemblowac ale mam jeden problem. Jest to intelowski hex i problem polega w tym ze jak zaczne rozkodowywac instrukcje od adresu 0x000000 to wychodza jakies cuda. Czytalem gdzies ze w ktoryms slowie tego hexa jest zakodowana wartosc dla licznika PC ale po przeanalizowaniu kilku pierwszych slow tez to wszystko jakos dziwnie wygladalo. Zakladam ze PC procesora jest po starcie ustawiane na 0, wiec nie wiem czemu tak dziwnie to wszystko wyglada. Jezeli ktos sie spotkal z tym problem to czy moze mi pomoc i powiedziec jak to jest ze startem programu z Eproma i jak to jest z tymi plikami hex i bin (tzn gdzie ewentualnie jest kodowany adres poczatku programu)... Bede bardzo wdzieczny.



Pozdrawiam Artur


Wziąłeś pod uwagę że motorole mają bajty w słowie w układzie low-endian w odróżnieniu od inteli co mają high-endian?

TP.

U¿ytkownik "Artur Pendzich" snipped-for-privacy@wytnijplusnet.pl napisa³ w wiadomo¶ci news:opskj5izifzsx1fw@froggy...

szczegolow nie pamietem bo bawielm sie troche tym prockiem ze 12 lat temu

ale pod adresem 0x000000 jest chyba wektor resetu czyli nie mozesz disasemblowac od 0x000000

tylko od adresu, na ktory wskazuje to co jest pod 0x000000

Dnia Thu, 13 Jan 2005 21:39:56 +0100, Andy snipped-for-privacy@ceti.pl napisał:

hmmm, czyli by wypadalo ze musze zaczac od 3 slowa bo vector resetu zajmowalby 2 slowa, mam racje?

Dnia Thu, 13 Jan 2005 21:38:15 +0100, Tomasz Piasecki <mtbrider@_-nospam-_.poczta.onet.pl> napisał:

Tak, wzialem. Ale juz chyba wiem gdzie lezy problem :) Plytka z ktorej jest ten program ma 2 kosci i linie adresowe podlaczone do nich rownolegle a linie danych sa rozdzielone czyli po prostu w kazdej z kosci jest chyba zapisany mladszy badz staszy bajt :) Tylko jak to teraz polaczyc i wlozyc do disasemblera? Hmm...

U¿ytkownik "Artur Pendzich" snipped-for-privacy@wytnijplusnet.pl napisa³ w wiadomo¶ci news:opskj6qke9zsx1fw@froggy...

raczej nie proponuje zajrzec do datasheet'a bo ja pisze z pamieci ale za wektorem resetu byly chyba inne wektory przerwan

wiec trzeba zobaczyc co jest pod adresem 0x000000 i jesli jest tam np

00FF1234

to nalezy rozpoczac disasemblacje od tego wlasnie adresu 0x00FF1234

poniewaz tam pojdzie procek po resecie

Aha, juz rozumie:) Dzieki sliczne za pomoc a czytales moze mojego drugiego posta do kolegi Piaseckiego? Nie wiesz moze jak automatycznie w polaczyc mlodsze i starsze bajty aby zdisasemblowac? W sumie mozna byloby napisac programik na to,hm.... Pozdrawiam i dziekuje Artur

Dnia Thu, 13 Jan 2005 22:22:49 +0100, Willy <willyvmm_no_spam@interia._no_spam.pl> napisał:

to chyba najlepsze wyjscie i niezbyt pracochlonne :) Dzieki i pozdrawiam Artur

Artur Pendzich napisał(a):

Któryś hexedytor miał taką opcję, ale który to był niestety nie pamiętam. W ostateczności jakiś mały programik można napisać sobie :D

Pozdrawiam Willy.

Drobna poprawka - pod adresem zero jest poczatkowa wartosc wskaznika stosu, dopiero dalej (pod 4) jest poczatkowa wartosc PC.

Krzysiek Rudnik

Dnia Thu, 13 Jan 2005 22:35:25 +0100, Krzysztof Rudnik snipped-for-privacy@kki.net.pl> napisał:

Dzieki sliczne :) Dzisiaj to sprawdze Pozdrawiam

Tomasz Piasecki wrote on Thu, 13 Jan 2005 21:38:15 +0100: [.....]

Jest dokładnie odwrotnie - 68k jest big endian.

Regards, /J.D.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required