> I'd like to make an operation on a 16-bit data (like an addwf) > in assembler. I was wondering if this could be possible since > the registers in the 16c717 are 8-bit wide. So my question > is : how can I make an operation on a 16-bit data (with the MSB > and LSB) The PIC's ALU (arithmetic logic unit) operates on units 8 bits wide, aka octets or bytes. To do math operations on wider variable, such as 16 or 32 bits, your code has to operate on one octet at a time and explicitly handle any carry or borrow between the multiple octets in your wider variables. There are various samples in the PIClist archives and the Microchip application notes. If you use a higher level language, such as C, the built-in library routines will do this for you. > and then separate the 8 MSB datas and the 8 LSB datas > so that I can store them in the SSPBUF register on the I2C bus? Since the 2 octets of the 16-bit value in seperate 8-bit wide file registers, they are already split & ready to store. Lee Jones -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.