1. A method of operating a flash memory device having a first area and a second area, the method comprising: receiving a program command, program data being associated with the program command; inverting the program data if the received program command is a command to program the second area; and programming the inverted program data into the second area, wherein a first state represents a programmed state in the first area and an erased state in the second area, and a second state represents an erased state in the first area and a programmed state in the second area.