[elektro] AVR assembly kérdés
Bali Zoltan
eltexto at freemail.hu
Wed Feb 16 19:59:35 CET 2011
Hali!
>A kisebb-nagyobb vizsgálat viszont hibázik bizonyos esetekben a
>szimulátorom szerint, mintha pont a carry bit "nem menne végig" az
>összehasonlítás láncon:
Nálam jónak tünik. Az utolsó 12-12 összehasonlítás előtt van
a carry és utána is. iar.
Üdv. Zoli
2011. 02. 16. 17:53 keltezéssel, Varsanyi Peter írta:
>
> Sziasztok!
>
>
> Nekiálltam asm-ben kioptimalizálni egy gyors kódot, de elakadtam egy
> elméleti problémánál. Adott két 24 bites elõjel nélküli szám, mondjuk
> R20:R21:R22 és R23:R24:R25 Ezek között akarok kisebb, nagyobb, egyenlõ
> vizsgálatokat végezni. Adatlap szerint a "CP Rd,Rr" végez byte-ok közötti
> compare-t, a "CPC Rd,Rr" pedig ettõl abban tér el, hogy "carry átvitelt" is
> csinál. Ezzel szemben az alábbit tapasztaltam:
>
> Az egyezés vizsgálat szépen mûködik, bármely eltérést kiszúr a ZERO bittel,
> amely szépen "végigmegy" az utasításokon, így a végén egyben kiértékelhetõ:
> cp R20,R23
> cpc R21,R24
> cpc R22,R25
> brne/breq<címke>
>
> A kisebb-nagyobb vizsgálat viszont hibázik bizonyos esetekben a
> szimulátorom szerint, mintha pont a carry bit "nem menne végig" az
> összehasonlítás láncon:
> cp R20,R23
> cpc R21,R24
> cpc R22,R25
> brcc/brcs<címke>
> A hiba akkor jelentkezik, amikor pl. az 123456H és a 123555H számot
> hasonlítom össze. A középsõ szám eltérését jelzõ carry bit felülíródik az
> utolsó számnál végrehajtott compare során - legalábbis a szimulátorom ezt
> állítja...
>
> Végezetül az AVR assembly leírás egyik oldala szerint a BRCC és a BRSH
> között az a különbség, hogy az utóbbi C+Z bitet figyel, míg az elsõ csak a
> Carry bitet, egy másik oldala szerint a kettõ utasítás egyenértékû, és
> mindkettõ csak a Carry bitet figyeli. Ugyanez a szitu a BRCS és BRLO
> utasításokkal. Látszólag így is mûködik, így viszont nem értem a doksi 10.
> oldalán leírtakat. (AVR Instruction Set, 0856C-09/01)
>
> Szóval per pillanat nem tudok máshogy összehasonlítani két 24 bites számot,
> mint 3-3 CP és BRxx utasítással, ami így "lassabb", mint amit szerintem el
> lehetne érni, ha a CP és a CPC utasítás között tényleg lenne különbség.
>
> A kérdésem tehát: hogy is van ez az egész? Van valami jó leírás a tipikus
> AVR ASM-es feltétel-vizsgálatokról, ill. valami rendes szimulátor, amely
> biztosan, sõt holtbiztosan teljesen tökéletesen dolgozik? Az enyémnek már
> nem hiszek...
>
> Köszi:
>
> Pepe
>
> -----------------------------------------
> elektro[-flame|-etc]
>
>
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 9.0.872 / Virus Database: 271.1.1/3447 - Release Date: 02/16/11 08:34:00
>
>
More information about the Elektro
mailing list