Re: Cyrix 200+ kontraiP166

Autor: Jarek Lis (lis_at_ict.pwr.wroc.pl)
Data: Fri 07 Mar 1997 - 21:59:53 MET


Radoslaw Poplawski <radekp_at_usa.net> wrote:
: />: />> Program typu:
: />: />> LDA #$77
: />: />> STA adres+1
: />: />> adres JMP $E4xx (oryg. xx=00)
: />: />>
: />: />Oczywiscie, ten program jest prawidlowy. Na procesorach 80286 i nowszych
: />: />wykona skok pod adres E400. Na 8088 chyba zreszta tez, ale juz nie pamietam.
: />: No, nie wiem. A czemu nie pod $E477?
: />A o 'kolejce rozkazow' czytales?

: Nie bardzo rozumiem co masz na mysli.

Nie czytales znaczy sie :-). W procesorach x86 [i x88], jak tylko magistrala
nie jest zajeta wykonywaniem operacji, to pewien blok czyta na zapas
kolejne slowa programu z pamieci. Zapamietuje je w tzw. 'kolejce rozkazow',
o dlugosci od 6 bajtow w gore. W efekcie jak rozkaz STA zapamieta bajt w
pamieci, to ten bajt do kolejki byl przeczytany znacznie wczesniej.
A wczesniej bylo tam 0.
Ale dzieki temu procesor chodzi szybciej - [prawie] zawsze rozkaz do
wykonania mamy juz przeczytany :-).
 
 : />: Na Atari z proc. 6502 (jakiej to firmy?) _zawsze_ bedzie wykonany skok
: />: pod $E477, niezaleznie czy przerwanie przyjdzie, czy nie :).
: />
: />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.

A skad wiesz ze caly fragment programu nie wygladal tak
pkt1: LDA #$75
      JMP store
pkt2: LDA #$77
store: STA adres+1
adres: JMP $E400

Moze w obsludze przerwania wywolano pkt1, a nie pkt2?

Jarek.



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