bascom
Szlifka Tibor
eltib at monornet.hu
Thu Aug 23 10:18:15 CEST 2007
> SHIFT var , LEFT/RIGHT [ , shifts]
> Ezek alapján:
> 1 - kikeresi a változót, azaz a megfelelő regisztert
> 2 - berakja valamelyik regiszterbe, amelyik szabad, ha éppen nem fel
> is szabadítja ha kell-ha nem PUSH-POP bulival
> 3 - kitököli, hogy merre is legyen az eltolás
> 4 - kitökkenti azt is mennyit shifteljen, azt pedig regiszterbe teszi -
> akkor is, ha az éppen 1 - a nullát vajon lekezeli valahogy? nem vagyok
> én gonosz, de a user ugye mindenre képes :-)
> 5 - aztán shiftel valamerre valamennyit, amit ugye számolni kell
> valahogyan
> 6 - ha végzett visszaírja, helyrerakja a regisztereket, PUSH-POP játék
> itt is
> Aztán nem foglalkoztunk még a carry-vel, meg hogy mi jöjjön be a
> regiszterbe...
Ez oké, de ennek a nagy része a fordító dolga. A fordító tököli ki milyen tolás kell és hányszor. Ennél az utasításnál mindig 0bit jön be. Fordítsa le szépen assembly-be a regiszterbe rakást, carry törlést, az egyetlen eltolást, majd a visszaírást. Ha nagyon akar akkor legyen egy push-pop is, egy regiszterre nem sok. A kész kód ekkor sincs 19 ciklus, nem tudom felfogni mit csinálhat..
--
tib
More information about the Elektro
mailing list