网上有关“汇编程序中nop的作用是什么”话题很是火热,小编也是针对汇编程序中nop的作用是什么寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
在单片机的C语言编程中,经常需要许多空指令来产生短延迟效应。
很容易做的汇编语言,只写几个空操作。
avr-gcc采用以下方法嵌入组装说明:
Asm(nop”;nop。nop。nop。”:);
在keilC51中,直接调用库函数:
包括//声明void_nop_(void);
_nop_();//生成一个NOP指令
扩展资料:
执行NOP指令只会增加程序计数器1个人电脑,所以需要一个机器周期。实例:MOVLW0xof;将OFH发送到WMOVWFPORT_B;在B端口写W到NOP;空操作MOVFPORT_B,W。
读指令:这三个端口B的连续操作指令的I/O端口,目的是为了写的内容读端口B,需要确保一个稳定的读写之间的时间,所以NOP添加空操作指令。
效果:很短的延迟,需要“_nop_”功能在美国水平,而编译NOP指令延迟的几微秒。NOP指令是单周期指令,延迟时间可以通过晶体振荡器的频率来计算。对于一个12M的晶体振荡器,延迟时间是1uS。
对于一个相对较长的延迟,要求大于10us,使用C51中的loop语句来实现。
在C51中选择loop语句时,要注意以下几点:
首先,在C51中定义了循环变量,尽量使用无符号字符变量。
其次,在FORloop语句中,尝试使用变量-来执行循环。
第三,在while和while语句中,循环体变量也使用了减法。
这是因为在C51编译器中,不同的指令用于不同的循环方法。
1、占用一个字节的程序存储空间:这是在对微机与单片机进行汇编指令指令编程时常用的手法,例如,为了刻意使某个程序段在一个特定的地址开始,或在某个程序段中删除了一些指令而还刻意要求地址不变,基于这些的需求,通常是应用NOP指令汇编指令来充填空闲的地址;
2、产生微小延迟:这是在微机与单片机进行汇编指令指令编程时常用的手法,微机与单片机的编程并非是周期扫描的执行机制,例如,在读取某个外围通道输入值时,先发出一个请求命令,带一定延时后,再读其数值,通常是应用NOP指令来进行延时;
3、常用来做代码地址对齐:这个纯粹是对与对微机与单片机进行汇编指令指令编程来讲的。这与上述的1中占用一个字节的程序存储空间的作用相同,即汇编编译后生成机器代码的效果。
关于“汇编程序中nop的作用是什么”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[踏歌尘]投稿,不代表拾光号立场,如若转载,请注明出处:https://www.7k54.com/shiga/7223.html
评论列表(3条)
我是拾光号的签约作者“踏歌尘”
本文概览:网上有关“汇编程序中nop的作用是什么”话题很是火热,小编也是针对汇编程序中nop的作用是什么寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助...
文章不错《汇编程序中nop的作用是什么》内容很有帮助