Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Assembler - wyliczanie adresów
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004
Assembler - wyliczanie adresów

Przypuśćmy, że mamy:
CALL        0012:3456


Pytania brzmią następująco:
1) Jak wyliczamy adres, pod który należy skoczyć?
Zawsze wydawało mi się, zę normalnie - tzn. mnożymy segment przez 16 i sumujemy z offset. W tym przypadku byłoby to:
0012*10 + 3456 = 3576
2) Czy wyliczona liczba to adres względem początku CodeSegment, czy względem początku pamięci? Wydaje mi się, że względem CS... ale mogę się mylić.

A moje wątpliwości wynikają stąd, że przy analizie programu znajduję na entry-poincie instrukcję call. Przeskakuję wg. powyższych reguł pod wskazany adres i... okazuje się, że mam tam serię bezsensownych instrukcji. Tzn. są poprawne, ale nie mają sensu (sumowanie dwóch 0 itp.). Zastanawiałem się, czy to nie jest próba wykrycia typu procesora, ale chyba raczej nie. Dlatego możliwe, że gdzieś robię błąd. Wydaje mi się, że wszystko robię dobrze, ale wolę się upewnić... może jestem zmęczony?

[Post edytowany dnia 10-08-2004 07:28 przez marcin_an]


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

10-08-2004 07:15
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 0 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1