ほりです。久しぶりの投稿です。 At 午後 02:50 02/12/27 +0900, you wrote: >スタートアップのアセンブラファイルで,次の様にしています。 > > .SECTION P, CODE, ALIGN = 2 ;Int Program >ITU_0: > PUSH.L ER0 > PUSH.L ER1 > PUSH.L ER2 > PUSH.L ER3 > PUSH.L ER4 > PUSH.L ER5 > BCLR #0, @TIER0 ;Stop Int > BCLR #0, @TSR0 ;Clear IMFA > > JSR @_interrupt_timer0 ;Jump C Int Func > > BSET #0, @TIER0 ;Restart Int > > POP.L ER5 > POP.L ER4 > POP.L ER3 > POP.L ER2 > POP.L ER1 > POP.L ER0 > > RTE レジスタの待避が ITU_0 と interrupt_timer0 の両方にあるので その時間が少しかかっていますね。 #pragma interruptの宣言でinterrupt_timer0を割り込みルーチンとして 宣言して、割り込みベクタにITU_0のかわりに_interrupt_timer0と すると少し高速になるかもしれません。 (interrupt_timer0の中で割り込み要因のクリアも追加) コンパイルするときの最適化オプションを'高速'にすると使うレジスタだけ 待避するコードをはくとおもうのでさらに高速になるとおもいます。 --- 株式会社 ビー・ユー・ジー 堀 耕太郎 TEL 011-807-6669 FAX 011-807-6647 http://www.bug.co.jp