NOP is a one-byte “do nothing” operation, quite literally “no operation”. NOPW, NOPL, etc.. are the equivalent do-nothings, but take up word and long-sized bytes.
NOP // 1byte opcode NOP // 1byte opcode
is equivalent to doing
NOPW // 2byte opcode.
They’re very handy for padding things out so a code sequence begins on a particular memory boundary, by taking up a few bytes of instruction space, yet not actually doing anything.
NOP’s sole effect on the CPU is to increment
EIP by 1. The NOPx equivalents will do so by 2, 4, etc…