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