read from serial buffer
Both are blatantly wrong.

The first method will loop inifinitely reading bytes from the UART and stuffing them into decreasing memory locations.  It will hang until the UART delivers enough bytes until eventually something sensitive in memory is overwritten or you get a address trap.

The second method doesn't even wait for the characters to be received.  it copies whatever is in U1RXREG at the time into the 4 bytes at DATA in backwards order.