C-s kerdes
Papp Zoltán
zombi at c2.hu
Thu Jun 21 00:05:50 CEST 2007
2007.06.19. 13:13:32 dátumon Balla Zoltán <zoltan.balla at shopguard.hu> írta:
> Sziasztok!
>
> Talalkoztam egy furcsa(vagy csak nekem az) problemaval...
Nem olvastam végig tüzetesen a hozzászólásokat, no és PIC-ekhez is csak
annyire értek, hogy ne használjam őket :) de:
Én mindig azt mondom, hogy ha valami gebasz van, első a lefordított ASM
kód tüzetes áttanulmányozása, hogy na mit is fordított a fordító.
Lehetőleg valamilyen list formában, 1 sor C utasítás, utána a lefordított
ASM kód, mint pl ez itt alant(bár ez AVR). Nekem már ez sokszor segített
és persze általában arra jöttem rá, hogy elnéztem a precedenciát vagy
kihagytam a volatile-t vagy ilyesmi.
.......
221 void lcd_printhexdigit(byte h)
222 {
\ __nearfunc void lcd_printhexdigit(byte);
\ lcd_printhexdigit:
\ 00000000 2F10 MOV R17,R16
223 h=(h & 0x0F)+'0'; //alsó 4 bit megtart
\ 00000002 701F ANDI R17,0x0F
\ 00000004 5D10 SUBI R17,208
224 lcd_putch(h>'9' ? h+7 : h);
\ 00000006 331A CPI R17,58
\ 00000008 F018 BRCS ??lcd_printhexdigit_0
\ 0000000A 5F19 SUBI R17,249
\ 0000000C 2F01 MOV R16,R17
\ 0000000E C001 RJMP ??lcd_printhexdigit_1
\ ??lcd_printhexdigit_0:
\ 00000010 2F01 MOV R16,R17
\ ??lcd_printhexdigit_1:
\ 00000012 ........ CALL lcd_putch
225 }
\ 00000016 9508 RET
......
--
Papp Zoltán
OneWay Electronics - www.onewayelectronics.hu
Hangszerviz - www.hangszerviz.hu
More information about the Elektro
mailing list