PIC elado
VF
vf at elte.hu
Mon Apr 28 19:11:19 CEST 2003
Thus spake Istvan Retaller:
> szoval 7 utasitas. PIC-ben megoldod harmincbol? Es az ido nagy
A bitenkenti szorzassal egyutt? Eselytelen... Mialatt a PIC egyetlen
adatot bemozgat a W-be, az AVR _ket szorzast megcsinal!_
(Ugyanolyan orajelen termeszetesen)
> st Z+,R16 utasitast. Ez a Z regiszterpar altal mutatott cimre teszi
> R16 erteket, majd Z-t eggyel noveli. Akkor is helyesen, ha Z pl.1fffh
> volt, akkor 2000h lesz Z a kilepeskor. Es ez _egyetlen_ utasitas.
> Ennek vannak testverei:
> st -Z,R16 szinten _egyetlen_ utasitas, de _elobb_ csokkenti Z-t, majd
> csak utana teszi le a regisztert.
Ez egy rendkivul hasznos dolog, de szinten csak azok tudjak ertekelni
igazan, akik lehuztak nehany evet valami korszerubb proci programozasaval.
Egy kis izelito az m68k assemblybol:
move.b ([a0,d0.w*8],678),(a2,d3.l*8,34)
A d0 regiszter also wordjet mexorozza 8-al, hozzaadja az a0-hoz, majd
az igy kapott cimrol beolvas egy longwordot. Ehhez hozzaad 678-at, majd
errol a cimrol beolvas egy bajtot, amit eltarol a kovetkezo cimen:
a d3-at megszorozza 8-al, hozzaadja az a2-t es 34-et.
movem.l d0-d2/a0-a2/a6,(a4)+
A felsorolt regisztereket elmenti az a4-tol kezdodoen. Pre-dekrementalas,
post-inkrementalas, vagy sima tarolas is lehetseges.
bfexts (a2,d4.l*4,3){10:3},d2
Az a2+d4*4+3 cimrol kiolvas egy longwordot, balrol szamolva a 10 bittol
kezdodoen 3 bitet kivesz, azt bemasolja a d2 legalso biteibe, majd a
tobbi bitet az elojelnek megfeleloen beallitja.
Ilyenbol van meg elso 1-es bit kereses, beszuras, stb...
divu.l d1,d2:d3
A d2 es d3 altal kepzett 64 bites szamot elosztja a d1-el. D3-ba teszi a
hanyadost, d2-be a maradekot. Van elojeles verzio is, szorzas is, d1
helyen az osszes szokasos cimzesmod hasznalhato.
Aki az ilyesmit szokta meg, az AVR-t is szeretni fogja, es hatekonyan
fogja tudni hasznalni. Aki 8051-en es hasonlokon tanulta az assemblyt,
annak szoknia kell, mielott hatekonyan tudna hasznalni a sok uj lehetoseget.
> Udv, RI
--
Valenta Ferenc <vf at elte.hu> Visit me at http://ludens.elte.hu/~vf/
"Lassan irom ezt a levelet, mert tudom, hogy nem tudsz gyorsan olvasni."
More information about the Elektro
mailing list