As far as I know, the difference is that CALL and GOTO are longer instructions and take up more memory space than RCALL and BRA, but can jump or call to anywhere in the memory space whereas RCALL and BRA can only go to somewhere close to the start point. If your code is small you should be able to use RCALL and BRA all the time. As far as I know, that's the only difference. Could well be wrong though :-) Martin -----Original Message----- From: pic microcontroller discussion list [mailto:PICLIST@MITVMA.MIT.EDU]On Behalf Of Josh Koffman Sent: 17 December 2002 23:28 To: PICLIST@MITVMA.MIT.EDU Subject: [PIC]: 18F program flow control question Ok, odd subject, admittedly. I'm a bit confused by the various methods of program control on the 18F. On the 16F it's easy, GOTO and CALL. But with the 18F there's now BRA (Branch) and RCALL as well. Here is my (likely wrong) understanding. GOTO and CALL use the full addressing, which BRA and RCALL are sort of relative to the current PC value. As I don't truly understand everything about the PC and it's cronies, I'm likely wrong. In general though, what would be prefereable to use, say in an ISR? I know not to use CAll or RCALL unless there will be a return somewhere, but in an ISR is there an advantage to using BRA over GOTO (in a small program anyways)? Thanks, Josh -- A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. -Douglas Adams -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu