Re: Automodyfikacja kodu programu

Autor: Bogdan Gajewski (bogdang_at_free.polbox.pl)
Data: Sun 27 Apr 1997 - 09:41:13 MET DST


Jaroslaw Lis napisał :

> 8086 mial kolejki 4 slowa [dwubajtowe] - czyli na pewno wiecej
> niz 8 bajtow na przod nie zapamietal.
> 8088 mial 6 bajtow.
>
> 286 - ?
> 386 - 16 bajtow

Wedle moich informacji :
8088 -4 bajty kolejki
8086 -6
80286 -6
80386 -16
80486 -??

P5- nie ma kolejki ale pojedynczy bufor o szerokosci 256 bituw
       czyli zmiesci sie w nim 32 bajty

> >Program uruchomilem na K5 -wtedy kod jest zawsze zmieniany
> >oraz na intel286 -kod jest zmieniany dla odleglosci >=6.
> >Czy mogli byscie sprawdzic jak zachowaja sie inne procesory.
>
> Tak w ogole, to jest jeszcze wazna metoda testowania, i multum innych
> warunkow:
> 1) kolejka sie laduje w miare potrzeby lub wolnego dostepu do pamieci.
> wiec zalezy to mocno od poprzednio wykonywanych operacji.
> 2) kolejka jest czyszczona przy skokach. Jesli wiec skoczysz do
> instrukcji mov ax,77, to kolejka jest wyczyszczona, i
> niekoniecznie zdazy sie zaladowac zanim nastepny rozkaz sie
> wykona.
OK.

> 3) powyzszze nie zawsze dotyczy Pentiumow, ktore maja 'branch
> prediction', a w ogole wykonuja do kilku rozkazow jednoczesnie
> [na roznych etapach], i jeszcze sa delikatne zaleznosci miedzy
> instrukcjami.
W tym pzypadku nie ma tu rozkazuw warunkowych skokow
    wiec nie ma co przewidywac(no branch prediction).
 Natomiast co do wykonania kilku rozkazow jednoczesnie
to mam nadzieje ze ze rozkazy kture zaleza wzajemnie od
siebie sa wykonywane w kolejnosci w jakiej sa w programie
a nie w jakiej wygodnie procesorowi.

> 4) sa rozne interakcje na poziomie rozlozenia programu pomiedzy bajty,
> slowa, linie cache, slowa pamieci... trzeba sprawdzac program
> przesuwajac go kolejno o 1 bajt.
Tak,trzeba rozmiescic instukcie tak jak sa ladowane co 16,32,64b

> 5) przerwania niwecza caly efekt.
juz wylaczone

Po przerobieniu programu nadal otrzymuje wynik:

 K5 -wtedy kod jest zawsze zmieniany
 intel286 -kod jest zmieniany dla odleglosci >=7.

Czy K5 nie ma kolejki rozkazuw.

-- 
--------
Bogdan Gajewski       bogdang_at_free.polbox.pl
PS:
Morze ktos sie odwazy sprawdzic to na innym procesorze??:-)
Jak sie boicie to przesle asm.:-)


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 16:03:51 MET DST