Thank you, James, now I found an 8x8 multiply from Andrew Warren. After eliminating the loop I think the following procedure is the fastest and not very long: If anyone has a better one: I'm interested. Martin ;*************************************************************************** **** ;** time efficient multiplication 8 bit x 8 bit = 16 bit (unsigned) ;** ;** company: elektronik 21 GmbH ;** programmer: Martin Schaefer (idea from Andrew Warren) ;** ;** execution time: fixed 38 cycles (with jump in and jump out) !!! ;** code length: 35 words ;** multiplier: w ;** multiplicand: resultlo ;** result: resulthi:resultlo ;*************************************************************************** **** MUL8X8 CODE Mul8x8 ;* 2 cycles for call - instruction GLOBAL Mul8x8, resulthi, resultlo mult MACRO btfsc STATUS,C addwf resulthi,F rrf resulthi,F rrf resultlo,F ENDM clrf resulthi ;* 1 cycle rrf resultlo,F ;* 1 cycle mult ;* 4 cycles mult ;* 4 cycles mult ;* 4 cycles mult ;* 4 cycles mult ;* 4 cycles mult ;* 4 cycles mult ;* 4 cycles mult ;* 4 cycles retlw 0 ;* 2 cycles ;*************************************************************************** ****