NX,全名為“No eXecute”,即「禁止执行」,是应用在CPU的一种技术,用作把记忆体区域分隔为只供储存处理器指令集,或只供数据使用。任何使用NX技术的记忆体,代表仅供数据使用,因此处理器的指令集并不能在这些区域储存。这种技术可防止大多数的缓冲满溢攻击,即一些恶意程式,把自身的恶意指令集放在其他程式的数据储存区并执行,从而把整台电脑控制。
类似的技术其实早已应用在SPARC、DEC Alpha、IBM的PowerPC、甚至是英特尔的IA-64架构处理器Itanium上,但NX这个名称最先在AMD的Athlon 64、Opteron等支援AMD64的处理器上使用,并成为这些技术的代名词。
在x86处理器的页表索引中,NX位元置于63号的位置(以0作第一位),即64位中的最后一位,如果NX位元的数值是0(关闭),在页表内的指令集可正常执行,但如果是1(启动)的话则不能执行页表的指令集,并会把页表的一切皆当作数据。在格式上,页表需为PAE格式,而非x86传统的格式。
2001年,英特尔在自家的Itanium处理器加入这种技术,但未有在Pentium、Celeron、Xeon等x86处理器上使用。在AMD把NX应用在AMD64之后,英特尔也为Prescott版本的Pentium 4处理器加入类似技术,并以“XD”(eXecute Disable)的名义推出市场。在功能上,AMD的“NX”和Intel的“XD”完全相同,只是名称不同。