_nop_();

摘要:
该功能是51单片机中使用的延迟功能,意味着执行一条无意义的指令并延迟一个指令周期。有些指令周期是两个或多个机械周期,指令只需要一个机械周期即12个时钟周期(振荡周期)。1个机械周期=12个时钟周期=12*(1/f)。指令的延迟时间为1us。可以精确地控制延迟时间。nop指令的功能:1)通过填充nop指令(nop指令中的一个字节)使指令字对齐。

C语言中没有_nop_()函数。

在51C中一般包含在#include “intrins.h” 头文件中。

该函数是在51单片机中用的延时函数,表示执行一条没有什么意义的指令,延时一个指令周期,有的指令周期是两个或两个以上的机械周期,但是_nop_();指令需要的只是一个机械周期也就是12个时钟周期(震荡周期)。

51单片机中,1个机械周期 = 12个时钟周期 = 12 * ( 1 / f)。(f 为晶振频率)。

如果只用的是12MHZ的晶振,那么 一个机械周期就是1us;也就是说:

nop(); 指令的延迟时间为 1us。可以较为精确得控制延迟时间。

nop指令的作用:
1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)
2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟。
3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;
4)清除由上一个算术逻辑指令设置的flag位;

免责声明:文章转载自《_nop_();》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Node 之http模块理论+实例,带你掌握Linux的页目录和页表下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c# 判断窗体是否永在最前(TopMost),调用windows API

  许多程序都可以把自身的窗体设为最前显示状态,这个可以参考博客c#让窗体永在最前 调用windows api 将窗体设为topmost。那么如何判断桌面上的一个窗体是否为最前显示状态呢,不光是自己的程序,还包括其它程序。我们可以通过调用Windows Api的GetWindowLong方法判断。   GetWindowLong是一个Windows API...

windows下的shellcode剖析浅谈[转自看雪]

标 题: 【原创】windows下的shellcode剖析浅谈作 者:snowdbg时 间: 2009-10-06,11:12链 接: http://bbs.pediy.com/showthread.php?t=99007  今天是中秋节,正好我的文章在今天基本完成,作为中秋礼物送给大家,由于本人水平有限希望大家多多批评指正!学习了好些日子了,思路总是乱...

树莓派的kodi设置遥控器的方法

 首先你需要买一个红外接收器,根据卖家的文档,插到树莓派的GPIO串口上, 我的红外接收器是18入口,17出口, 所以我的config.txt文件设置如下 dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17 硬件安装好,并且config.txt文件设置好后,插上TF卡,开机, 开机后,进入主界面的菜单最下方,...

《逆向工程核心原理》笔记第一章到第十一章

第一章/第二章 分析Hello World!程序 OD基本命令 Restart Ctrl+F2 重新开始调试 Step Into F7 执行语句会进入函数内部 Step Over F8 执行语句不会进入函数内部 Execute till Return Ctrl+F9 一直在函数代码内部运行,直到遇到retn跳出 (跳出该命令函数) OD中右边注释中的红...

QEMU1.3.0的源码分析三:user model之linux

从源码目录来看,user model有两块内容bsd-user和linux-user。我主要研究了下linux-user这种情况。首先要提一下通常容易关注的焦点,linux-user下的函数入口点:/源码目录/linux-user/main.c中的Line:3388    int main(int argc, char **argv, char **env...

SurfaceView 与view区别详解

SurfaceView 与view区别详解 https://blog.csdn.net/u011339364/article/details/83347109 2018年10月24日 17:20:08 可爱的you 阅读数:2077   在Android系统中,有一种特殊的视图,称为SurfaceView,它拥有独立的绘图表面,即它不与其宿主...