这个指令在汇编中的作用是空指令,意味着什么都不做的意思,一般用来控制CPU的时间周期,达到时钟延时的效果
首先说一下什么是CPU时钟:
CPU时钟:处理器芯片是在特定的时钟频率下进行工作的。处理器的速度用时钟频率衡量。
其次衡量的单位以赫兹为单位:
首先你要明白什么是频率,频率的单位Hz(赫兹)。1Hz就是每秒完成一个周期,10Hz是每秒完成10个周期。不过,Hz这个单位太小了,通常以KHz、MHz或GHz来表示信号频率。
1GHz=1000MHz 1MHz=1000KHz 1KHz=1000Hz
如果你的CPU上的单位为1GHz的话意味着你的CPU每秒能完成1000个周期!
每个周期都会通过数据总线以及外部总线去取数据和处理数据!
有的时候我们想要让CPU等待一会处理我们的指令,那么在此期间需要让CPU在执行我们程序代码段时什么都不做,也就是给定一个空指令,NOP,并且该指令是会自动对齐CPU内存寻址!
注意程序是不能主动获取CPU控制权的,是由操作系统分配的,所以当操作系统将CPU的控制权分配给你一段时间,这段时间里你什么都不想做的情况下就可以使用该语句,当时间过了之后CPU控制权收回时,操作系统会把程序的代码执行状况保存到PCB进程控制块里,以便下次执行!
关于内存对齐详解:详解C语言内存对齐
一个周期只能用于一次CPU寻址或处理,在汇编标准里一个NOP是会和CPU架构对齐的,达到内存对齐
而一个时钟周期只能完成一次寻址或处理指令,所以NOP也就占用一个时钟周期!也就是1us
1us=0.0001s