[elektro] PIC C32 shift right

SZIGETI Szabolcs szigiszabolcs at gmail.com
Thu Jan 17 07:15:08 CET 2013


Hali!

Igy van belefutottál a C egyik szépségébe, az implementáció függő
működésbe. Van még pár ilyen dolog.

Szabolcs
2013.01.17. 4:23, "flaist" <flaist at gmail.com> ezt írta:

> Szia!
>
> 1980-ban még 8080-al kezdtem.
> Akkor még a C csak kiváltságosoknak jutott.
> így a bit toszogatás jó néhány verzióját használtam már több féle
> assembly-ben.
> RRC RRCF RRNCF SHR SAR ROR RR   SRAV SRA SRL SRLV
>
>
> Na de a bajom az volt, hogy C18 és C32 teljesen másképp működik a jobbra
> shiftelésnél előjeles változóval.
> Amit eddig úgy hittem hogy egységes, de most olvasom az ANSI-C könyvet, és
> azt írja, hogy ez "számítógép" függő lehet.
> És a PIC18 és PIC32 nem egyforma "számítógép" !
> Most már megtanultam.
>
>
> -----Original Message-----
> From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
> Of Info
> Sent: Thursday, January 17, 2013 12:41 AM
> To: flaist
> Subject: Re: [elektro] PIC C32 shift right
>
> Szia!
>
> > Tegnap C32 fejlesztéskor szívtam  az alábbival.
> > Aztán hosszas nyomozás után megtaláltam a lenti megjegyzést..
> > Eddig C18 használtam ott nem hozta be az előjel bitet, még
> > bosszankodtam is anno miatta.
> > Melyik az elterjedtebb verzió?
> > Mennyire jó ötlet így variálni az alap műveleteket (pláne azonos IDE-ben)
> ?
>
> Nos, látom nem ismered az assembly nyelvet, többnyire 3 léptető utasítás
> van, ezeket variálhatod:
> - logikai (belépő bit 0)
> - aritmetikai (belépő bit nem lesz, marad ami volt)
> - "carry"-n keresztül (belépő bit carry flagból) a kilépő bitek többnyire a
> carryba mennek, de ez sem általános, most mindegy is.
>
> Szóval amit leírtál jelenséget teljesen természetes, hiszen a char előjeles
> (ha csak a fordítási opciókban mást nem adsz meg).
> Ezért aritmetikai léptetést használt.
> Az unsigned char-nál pedig felismerte, hogy simán tologatni akarsz ezért
> logikai léptető utasítást fordított a kódba.
> A harmadik nem szokott elérhető lenni C-ből, az a fordító belső magánügye.
> Szal a fordítód jól működik.
>
> -----------------------------------------
>           elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list