[elektro] AVR GCC kezdő kérdés
    Moczik Gabor 
    pm_levlista at progzmaster.hu
       
    Mon Jan 31 11:41:46 CET 2011
    
    
  
Norbert Berberovics wrote:
> Köszi a gyors reagálást.
> Most már tudom, miért nem akartam C-re átálni. : o )
> Ami asm-ben egyértelmű miért nem csináltak rá C-ben utasítást.
> 
> mondjuk egy ilyet:
> 
> a= a<< (PINC.4)   //és ez szépen beléptetné a port bitjeit egy változóba
> 
> És ennyi.......
ASM-ben belépteti?
Nem. Ott is ciklusba kell szervezni, csak ezeket a részeket nem idézted 
be az ASM kódba, csak azt a 3 részutasítást.
C-ben is ciklusba kell szervezni. Azért nincs rá utasítás, mert a 
lehetőségek száma nagy, balról jobbra vagy fordítva léptessen, az összes 
bitet vagy csak valamennyit, az elejétől vagy csak valahanyadiktól, stb...
for(i=0, inbuf=0; i<=7; i++) {
     inbuf|=SDI;
     inbuf<<=1;
}
Ezt vagy hasonlót ha lefordítod, látható lesz, hogy fog használni 
valamilyen CPU-specifikus shift utasítást.
Ugyanígy, ha leírod hogy x/16, rá fog jönni hogy 4 bittel jobbra kell 
shiftelni, nem fogja osztásra fordítani.
-- 
((( Móczik Gábor  )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))
    
    
More information about the Elektro
mailing list