If you have instructions like this:
0x1000 INSTR_1
0x1004 INSTR_2
0x1007 INSTR_3 /* instructions can have different size */
and the EIP
contains 0x1000, you need to update the EIP
to make it point to the second instruction (0x1004), so it can execute it in the next iteration. If you don't do this, you will always execute the first instruction.
Because instructions can have different size, you can't just add the constant to it (you can do that if all instructions have the same size, like in RISCs), but you need to add lenght of the instruction you've just read. So, after the first, you will add 4, to make it point to the second one, and after the second instruction, you will add 3 to EIP
and it will point to the third instruction.