a programmable non - volatile memory supplies of instructions and data to a processing unit . a program stored in the non - volatile memory contains an instruction for jumping to a subprogram in an auxiliary memory . the subprogram changes data in the non - volatile memory for use by the program and returns control to the program in non - volatile memory when completion of the change is detected . control can be transferred back from the subprogram to one or more instructions in the non - volatile memory after suspension of data changing before said changing is complete . changing is resumed upon return of control from the one or more instructions to the subprogram .