首页 > 代码库 > NOP指令概述及作用

NOP指令概述及作用

/*********************************************************************
 * Author  : Samson
 * Date    : 08/03/2014
 * Test platform:
 *              Linux ubuntu 3.2.0-58-generic-pae
 *              GNU bash, version 4.2.39
 * *******************************************************************/

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

NOP是用执行一条具有操作数,具有相同效果的指令;
NOP指令通常用于控制时序的目的,强制内存对齐,防止流水线灾难,占据分支指令延迟),或是作为占位符以供程序的改善(或替代被移除的指令)。

C语言中最简单的NOP块被称为空语句;其只包括一个分号。
;

但是至于是否是把这样的一个分号在编译的时候编译为NOP指令,则是需要确定编译器是如何进行编译的,有可能对此句进行了优化,不一定就是完全能够对上号的;

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