NOP

计算机科学中，NOP或NOOP（No Operation或No Operation Performed的缩写，意为无操作）是汇编语言的一个指令，一系列编程语句，或网络传输协议中的表示不做任何有效操作的命令。

NOP代码

NOP有时可以描述函数或一系列编程语句的作用，若部分没有作用（也可以称为冗余代码）。常见的编译器优化的作用就包括检测和去除这样的代码。
下面是一个起NOP作用的C语言语句的例子（评判标准在于语句是否影响程序输出，而非编译器是否为语句产生代码）：

     i+1;
（该语句执行了一个加法，但结果被丢弃。）
C语言中最简单的NOP块被称为空语句；其只包括一个分号。（标准没有要求编译器在这个例子中生成NOP指令；通常这个语句会直接为编译器所忽略。）

   ;
虽然空语句自身没有用处，但在某些情况下可以启动占位符的作用，例如在循环中：

   while (ReadChar() != '\n')
      ;
以上代码一直调用ReadChar函数，直到函数返回一个\n（NL，新行）字符。
Python中的pass语句不会产生作用，可以作为NOP使用。它的主要目的是保证语法正确，由于Python的缩进敏感语法。

破解

NOP通常在破解软件时有特殊用途，例如检查序列号，特定硬件或软件需求，加密狗等的软件。这是通过更改函数和/或子程序以跳过安全检查，直接返回期望的检测值实现的。由于大多数安全检查子程序中的指令会被废弃，它们会被NOP所代替。

安全问题

NOP操作码可以被用于组成一个NOP slide，允许在指令指针值未定义时执行代码，例如缓存溢出导致栈上的函数返回地址被更改。