ďťż

81998_1

Lemur zaprasza

Strona: [  >  ]  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]


_____________________________________________
Popieram losmaca:
1) Ludzie, dbajcie o polszczyznę!!! 
2) Ludzie, zadawajcie kompletne pytania, a nie - rzucacie ochłapy i trzeba się domyślać o co chodzi!!!
___
NOWE FORUM






10-08-2004 07:15



 
    













Wszystkich odpowiedzi: 0 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza