What does NOPL do in x86 system?

user1693539 picture user1693539 · Sep 24, 2012 · Viewed 31.9k times · Source

what is the function of NOPL in x86 machine? It feels like it doesn't do anything, but why is it always in the assembly code?

Answer

Marc B picture Marc B · Sep 24, 2012

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.

e.g.

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 IP/EIP by 1. The NOPx equivalents will do so by 2, 4, etc...