If adding more code to your ASM program changes the timing, then it's not using interrupts or hardware pwm. Sounds like the timing using that program is not adjustable.

I remember someone here posted about DT-INT and pwm, I'd search for that.

Robert