Re: Cyrix 200+ kontraiP166

Autor: Gregorio Kus (Grego_at_RMnet.it)
Data: Sat 08 Mar 1997 - 02:02:56 MET


On Fri, 7 Mar 1997 21:17:15 +0100 (CET), Radoslaw Poplawski wrote:

>/>Radoslaw Poplawski <radekp_at_usa.net> wrote:
>/>: />> Program typu:
>/>: />> LDA #$77
>/>: />> STA adres+1
>/>: />> adres JMP $E4xx (oryg. xx=00)
>/>: />>
>/>Niekoniecznie :-). Bo ten program generalnie to wcale nie jest taki
>/>prawidlowy - jesli w momencie wykonywania rozkazu STA przyjdzie przerwanie,
>/>to jego obsluga moze akurat wywolywac ta procedure, tylko pod adres+1
>/>wpisac cos innego. Po powrocie z przerwania wykona sie skok pod $E4yy,
>/>gdzie yy niekoniecznie musi byc 77.
>
>A czemu? W systemie nie ma cache'u, a wiec gdy przyjdzie czas
>wykonania rozkazu JMP w komorkach adres+1 i adres+2 _zawsze_ bedzie
>juz fizycznie wpisane $77 i $E4. Moment przyjscia przerwania (jak i
>cale przerwanie) nie ma zadnego znaczenia.

ejze Radku!
jesli przerwanie przyjdzie w momencie wykonywania instrukcji STA
to po jej wykonaniu owszem w yy bedzie 77, ale w tym momencie
wskakuje obsluga przerwania ktora moze naprzyklad zmodyfikowac yy
kiedy ISR sie skonczy, nastepna~ instrukcja~ do wykonania bedzie
JMP E4yy z tym ZMIENIONYM yy

aczkolwiek - dyskusja zaczyna byc cokolwiek akademicka.
dfzis juz samomodyfikujacy sie kod mozna spotkac praktycznie
wylacznie w wirusach. A to z nastepujacych powodow:

1. Modyfikacja wlasnego kodu przez program jest "wykleta" przez
   informatyke, ze wzgledu na klopoty z modyfikacja/uruchomieniem
   takiego programu. Osiagniete korzysci rzadko sa warte dodatkowego
   wysilku, nie mowiac o tym ze tego typu sztuczki nie maja zadnej
   gwarancji dzialania na nowszym procesorze czy przy zmianie
   architektury (cache etc)
2. W zwiazku ze wzrostem mocy procesorow znacznie zmniejszyl sie
   obszar zastosowania takich udziwnien,
3. Wszystkie prawdziwe systemy operacyjne traktuja obszar danych
   calkowicie rozdzielnie od obszaru rozkazow i z reguly nie
   pozwalaja nawet CZYTAC z obszaru rozkazow a co dopiero ZAPISYWAC.

Grego

--
/-----------------------------------------------------------------
Gregorio Kus         Grego_at_RMnet.it           Grego_at_cyberspace.org
ROMA, Italy          2ndAdmin_at_iName.com       Grego_at_FreeNet.hut.fi
Anonymous Mail Service - http://free.rmnet.it/~grego/AnonMail.html


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:57:59 MET DST