HI everyone,
I'm learning C and some assembly language currently, and was told that $ + 1 would delay 2 instruction cycles instead of 1. Shouldnt it just take 1 instruction cycle? How's that work? Also, $ does stand for PCL, right?
It would delay by two cycles, because all jump/branch instructions require two cycles to execute. Yes, $ is the current PCL.
If you need four cycles delay, give a return instruction on any existing function a label and call that label. You get four cycles delay with only a single call instuction.