Use INCFSZ with the twos-complement of the desired loop count: Let NumLoops= movlw high(-NumLoops) movwf LoopCounterHi movlw low(-NumLoops) movwf LoopCounterLo Loop [something useful] incfsz LoopCounterLo,f goto Loop ; keep looping til we hit 0 incfsz LoopCounterHi,f goto Loop ; keep looping til we hit 0 return ; exit Bob Ammerman RAm Systems -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body