zaujimavost pri programovani AVR v GCC

Jan Waclawek konfera@efton.sk
Úterý Říjen 23 16:17:43 CEST 2007


>On Tue, 23 Oct 2007, Richard Kaliciak wrote:
>
>> 	while(1){
>> 		PORTA = counter++;
>>    d2:	8b bb       	out	0x1b, r24	; 27
>>    d4:	01 96       	adiw	r24, 0x01	; 1
>>    d6:	fd cf       	rjmp	.-6      	; 0xd2 <main+0x4>
>> ---------- end ----------
>> (counter je v R24 a R25 = 16 bitov)
>
>> 	while(1){
>> 		counter++;
>>    d0:	8f 5f       	subi	r24, 0xFF	; 255
>> 		PORTA = counter;
>>    d2:	8b bb       	out	0x1b, r24	; 27
>>    d4:	fd cf       	rjmp	.-6      	; 0xd0 <main+0x2>
>> ---------- end ----------
>> (counter je v R24 = 8 bitov)
>
>> Vie mi to niekto vysvetlit?
>
>Vysvetlit to neumim, ale mam pocit ze obe ty smycky jsou stejne rychle.
>Jediny rozdil je v te pocatecni inicializaci. To zpomaleni poznate ?

Wordova aritmetika (adiw) je na 2 cykly na rozdiel od 1-cyklovej bytovej (subi) - to je na tak kratkom cykle pekne poznat.

wek



Další informace o konferenci Hw-list