[elektro] C18 compiler v3.46 probléma
elight
elight at gmail.hu
Fri Jan 15 09:01:26 CET 2016
Szia
Próbáld meg konkrét (int) meghatározással
vagy esetleg tagokra bontva:
XXXX = 30;
YYYY = 60;
XXXX = XXXX*YYYY;
vezethet eredményre , vagy kényszeríted a
konstans típusát pl:
XXXX = 30L * 60L; // ahol az L = long ; U = unsigned stb..
( ez szerintem nyelvi elem, nem fordító függő tulajdonság,
a fordítóban /linker/ legfeljebb az alapértelmezési tartomány
lehet konfigurált. )
Itt is ( de bármelyik C könyvben ) vannak okosságok
a típusokra és az automatikus típuskonverzióra is..
http://nyelvek.inf.elte.hu/leirasok/D/index.php?chapter=3
Üdv István
2016-01-15 03:54 keltezéssel, fi F írta:
> Igen, valszeg. alapból 8 bites a konstans default?
> De ezt hol lehet állítani c18-ban.
>
> -----Original Message-----
> From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
> Of Pipi
> Sent: Friday, January 15, 2016 12:22 AM
> To: elektro at tesla.hu
> Subject: Re: [elektro] C18 compiler v3.46 probléma
>
> első esetben egy bájton számol, és azt rakja 2 bájtba ?
>
> 2016.01.15. 00:13 keltezéssel, fi F írta:
>> Sziasztok!
>>
>>
>>
>> Biztos igaza an a fordítónak, de nem értem miért!
>>
>> Ugye a 30 * 60 az 0x708, azaz 07 és 08 két byte-on.
>>
>>
>>
>>
>>
>>
>>
>> static int XXXX;
>>
>>
>>
>>
>>
>> **********************************************************
>>
>>
>>
>> XXXX = (30 * 60);
>>
>>
>>
>> erre meg ezt fordítja miért ??????:
>>
>>
>>
>> 0x470C: MOVLW 0x8
>>
>> 0x470E: MOVLB 0x5
>>
>> 0x4710: MOVWF 0xCB, BANKED
>>
>> 0x4712: CLRF 0xCC, BANKED ;????????? nem értem miért nulla
>>
>>
>>
>>
>>
>> **********************************************************
>>
>> XXXX = (30L * 60L);
>>
>>
>>
>> erre ezt fordítja helyesen:
>>
>>
>>
>> 0x470C: MOVLB 0x5
>>
>> 0x470E: MOVLW 0x8
>>
>> 0x4710: MOVWF 0xCB, BANKED
>>
>> 0x4712: MOVLW 0x7 ;!!!!!! így jó
>>
>> 0x4714: MOVWF 0xCC, BANKED
>>
>>
>>
>>
>>
>>
>>
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>>
>
More information about the Elektro
mailing list