I'll try: clrf c movf b,w ;b = w btfsc a,0 addwf c addwf b,w ;w = b*2 btfsc a,1 addwf c movwf b ;b = b*2 addwf b,w ;w = b*4 btfsc a,2 addwf c movwf b ;b = b*4 addwf b,w ;w = b*8 btfsc a,3 addwf c . . . movwf b ;b = b*64 addwf b,w ;w = b*128 btfsc a,7 addwf c rgds, Reggie ----- Original Message ----- From: Scott Dattalo To: Sent: Wednesday, November 14, 2001 3:43 AM Subject: Challenge: 8X8 multiplication > Suppose you have: > > c = a * b > > and all three are bytes. > > Minimize execution time (on a mid-range core). > > Trashing a (or b) I have a routine that is 31 instructions/cycles long. > > Any takers? > > Scott > > -- > http://www.piclist.com hint: PICList Posts must start with ONE topic: > [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads > > -- http://www.piclist.com hint: PICList Posts must start with ONE topic: [PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads