[elektro] C kérdés

potyo potyo.ada at gmail.com
Thu Sep 24 12:50:08 CEST 2009


Ezt kaptam, végrehajtási ideje 17 ciklus. Úgytűnik ez is vágja, hogy csak
egy bájttal kell foglalkoznia az address-ből, viszont azt nem ismeri fel,
hogy csak az adott bitet kellene megnéznie és az alapján csinálnia valamit a
kimenettel. Ezért szoktam azt mondani, hogy legalább olyan szinten ismerni
kell az asm nyelvet, hogy meg tudjuk nézni, hogy az adott kód mire fordul.


148:                       EE_A10_IO=(address&(1<<10))>>10;
 000BA    0E00     MOVLW 0
 000BC    010F     MOVLB 0xf
 000BE    1521     ANDWF 0x21, W, BANKED
 000C0    6E00     MOVWF __tmp_0, ACCESS
 000C2    6A01     CLRF j, ACCESS
 000C4    C001     MOVFF j, __tmp_0
 000C6    F000     NOP
 000C8    6A01     CLRF j, ACCESS
 000CA    90D8     BCF STATUS, 0, ACCESS
 000CC    3200     RRCF __tmp_0, F, ACCESS
 000CE    90D8     BCF STATUS, 0, ACCESS
 000D0    3200     RRCF __tmp_0, F, ACCESS
 000D2    5000     MOVF __tmp_0, W, ACCESS
 000D4    B0E8     BTFSC WREG, 0, ACCESS
 000D6    8090     BSF LATH, 0, ACCESS
 000D8    A0E8     BTFSS WREG, 0, ACCESS
 000DA    9090     BCF LATH, 0, ACCESS

2009/9/24 Papp Zoltán <zombi at c2.hu>

> 2009.09.23. 16:00:32 dátumon potyo <potyo.ada at gmail.com> írta:
>
> Szia!
>
> Arra mit ad, hogy:
>
> EE_A10_IO=((address&(1<<10))>>10; ?
>
> Én mondjuk csak IAR C for AVR alatt próbálkoztam, azaz AVR maggal, de ott
> nekem ezt mindenféle optimalizálás nélkül is kb. olyasmire fordítja mint
> neked a 2. versenyzőt.
> Azaz egyből vágja, hogy csak egy bájttal kell foglalkozni a 2 bájtos
> változóból, ezt elméletileg egy 8-bites magra írt fordítónak illene tudnia.
> úgy látszik ez nem tudja :(
>


More information about the Elektro mailing list