Interrupt response csokkentes

Dukai Zoltan dukai.zoltan at gmail.com
Sun Jan 8 17:21:47 CET 2006


Udv!

C-s guruktol kerdeznem hogy mi az a varazsszo amitol nem fogja a 
regisztereket PUSH-olgatni es a rutin vegen POP-olni a fordito?

Alig hasznalok regisztereket, szerintem ki sincs hasznalva mind a 32, es 
akkor is ...
SIGNAL(SIG_PIN_CHANGE1)
{
   f6:	1f 92       	push	r1
   f8:	0f 92       	push	r0
   fa:	0f b6       	in	r0, 0x3f	; 63
   fc:	0f 92       	push	r0
   fe:	11 24       	eor	r1, r1
  100:	8f 93       	push	r24
outbuf[2]=PINC;
  102:	86 b1       	in	r24, 0x06	; 6
  104:	80 93 10 01 	sts	0x0110, r24
mehet=1;
  108:	81 e0       	ldi	r24, 0x01	; 1
  10a:	80 93 00 01 	sts	0x0100, r24
  10e:	8f 91       	pop	r24
  110:	0f 90       	pop	r0
  112:	0f be       	out	0x3f, r0	; 63
  114:	0f 90       	pop	r0
  116:	1f 90       	pop	r1
  118:	18 95       	reti


a rutinon belul ha jol latom ra se szagol az r1 es r1-re. akkor minek 
nyomja fel a stack-re?

Ahogy nezem minden rutinban felnyomja maganak az r0 - r1-et.
ez -O2 optimalizacional van. O0-nal hoszabb lesz, O3-nal is

eni ajdiaz? :/




More information about the Elektro mailing list