wie ich schon sagte, alles zu theoretisch ( A = A*2)
Du müsstes mal den Codeausschnitt oder den Algorithmus zeigen.

ASM Routinen für die Berechnungen
gute Idee, da Bascom in ASM direkt die Bascom-Variablen ansprechen kann:
Hier mal ein Codeschnipsel für eine NoSave-ISR mit zwei Variablen in den verschiedenen Schreibweisen (Pointer etc)
Code:
  Config Timer0 = Timer , Prescale = 1024  'Takt: 64µs 
  On Timer0 Timer_irq Nosave         'Timerüberlauf ISR 
  Const Timervorgabe = 0 
  Dim Ueberlauf As Byte      'wegen Assembler als Byte

Timer_irq: 
  'Nosave ISR -> save used register 
  push r24 
  in r24,sreg 
  push r24 

  'Timer0 laden 
  ldi r24, Timervorgabe 
  !out Tcnt0 , R24 

  'Set Ueberlauf 
  ldi r24, $01 
  sts {Ueberlauf}, r24 

  'restore used register 
  pop r24 
  !out sreg,r24 
  pop r24 
Return