For 16F84 there’s an excuse for that, but wouldn’t it be easier for 16F628 to use hardware PWM
and have your software just adjust the registers?
I don’t see any benefit worrying about assembler for that.