I've made my own delay subroutine and naturally I want it to be as exact as possible. I use the call instruction to call a smaller delay to get a loger one. I read that the call instruction takes two instruction times to execute. So my question is does it take two instruction times when it jumps to the other place and two instruction times when it jumps back. OR only two instruction times for the whole thing?
I've made my own delay subroutine and naturally I want it to be as exact as possible. I use the call instruction to call a smaller delay to get a loger one. I read that the call instruction takes two instruction times to execute. So my question is does it take two instruction times when it jumps to the other place and two instruction times when it jumps back. OR only two instruction times for the whole thing?
It says quite clearly there, 'CALL is a two cycle instruction', it doesn't mention 'RETURN' at all - return will take at least one cycle, again the datasheet reference to RETURN will tell you.
I've just been and checked the datasheet - RETURN and RETLW are both two cycle instructions as well. So your CALL takes two cycles, and your RETURN takes another two.