[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