I want to generate a square wave using MCU. Why I don't use a timer is that its interface port cannot control the component in my design.
I use the NOP instruction to control the cycle of the square waves, the clock frequency is set to 16M, and the code is just like this:

I have set the width of + and - to be equal .But the square wave is imprecise:

And I decrease one NOP number of -, the width decreased too much:

And other square wave widths are also affected.
So I want to know the specific mechanism of the instructions execution.