>> I know how to move the 16-bit register into a WREG by using >> "MOV f, WREG", but what I do not know is how to split that into >> two bytes, or worded differently, how to get the high byte and >> the low byte into two separate file registers. >> First of all, I haven't actually programmed one either. 2nd of all, it looks like one wouldn't normally separate the bytes very often; most of the instructions have byte and word modes, with the byte version operating on the low 8 bits and not bothering the high bits. So to send two bytes from a register to your uart, you'd probably just send one, swap the bytes with the swap instruction, send the new low byte, and swap to get back again. If you DO want one or the other byte all by its lonesome with only zeros in the rest of the word, I think something like these will work: ; get low byte by itself in Wn from f mov f,Wn ;get f and #255,Wn ; and off low 8 bits ; get high byte by itself in Wn from f mov f,Wn ; get f lsr Wn, #8, Wn ; shift to get 8 upper bits and clear others. In general, one has to start thinking slightly different about bit algorithms when you suddenly acquire a processor with a barrel shifter that makes multi-bit shifts as fast as single bit shifts... BillW -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist