51

tak przy okazji - nieco odeszlismy od tematu...

dzisiaj bylem w salonie nokii i bylem zdecydowany kupic N90 - lipa, nie do dostania...
pewnie bede musial zadowolic sie N70, ale oznacza to o polowe mniejsza rozdzialke wyswietlacza :(

czy tak czy siak, bede probowal powalczyc z tymi platformami (s60 - czyli m.in. n-gage)
i efekty opisze w tym watku...

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

52

AdamSoTe napisał/a:

Jeszcze odnośnie instrukcji XCHG AL, AH. Wykonuje się ona "zawsze" 1.5 cykla (latency) i ma 1 cykl throughput. ROL AX,8 wykonuje się 1 cykl na większości procesorów, albo 4 cykle (to jest tylko na rodzinie procesorów 0xF2). Ponadto nie występuje tutaj coś takiego jak "problem emulacji rejestrów", bo jest wykorzystywana tylko część rejestru a nie całość. Jedyne co może wystąpić to "partial registry stall" albo "registry stall", czyli np.:

rol eax, 8
mov al, ah

druga instrukcja, czeka na wynik pierwszej, gdyż wartość 'ah' jest zależna od wykonania poprzedniej instrukcji. Bynajmniej nie wynika to z podziału rejestrów. Problem pojawia się jedynie w sytuacji gdy chcemy użyć rejestru, który wcześniej posłużył jako rejestr docelowy.

"Problem emulacji rejestrów" ZTCW pojawił się w PPro i ciągnął się co najmniej do PIII (wiele osób jeszcze je ma). Kiedy zniknął? Z odczytem ah z zapisanego eax ZTCW nie było większego problemu (najwyżej zwykły "registry stall"). Problem był, gdy zapisaliśmy ah i odczytywaliśmy ax lub eax (czyli w przypadku xchg al,ah, po którym zapewnie chcemy użyć ax).

https://www.youtube.com/watch?v=jofNR_WkoCE