`

nop指令

阅读更多
一个nop为1个指令周期,主要用于精确定时或者延时

nop指令的作用:
1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)
2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟;-->具体应该说是占用了3个时钟脉冲!
3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;
4)清除由上一个算术逻辑指令设置的flag位;
5)破解:)对于原程序中验证部分使用nop来填充,使验证失效;
6)有一个朋友说的比较厉害--在航天飞机控制程序中防止程序跳飞!
分享到:
评论

相关推荐

    单片机C51中的NOP指令使用经验

    作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用...

    南昌大学06年单片机试卷和答案

    已知MOV指令周期为1,NOP指令周期为1,DJNZ指令周期为 2,单片机晶振频率为6MHZ,相应程序如下: MOV R3 ,(①) LOOP:NOP NOP DJNZ R3,LOOP (1)若想该程序延时50us,则①中应填入 ( #06H ) (2)NOP指令所起...

    单片机c语言中nop函数的使用方法和延时计算

    标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。  这在汇编语言中很容易实现,写几个nop就行了。

    单片机C语言中_nop_函数使用及延时计算

    标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。

    arm79汇编伪指令介绍

    EXPORT symbol{[WEAK]} GLOBAL symbol{[WEAK]} [WEAK] 声明其它的同名...1.如果该符号被 B 或者 BL 指令引用,则该符号被设置成下一条指令的地址,该 B 或者 BL 指令相当于一条 NOP 指令。 2.其它情况下该符号被设置 0 。

    基于51单片机的精确延时(微秒级)

    基于51单片机的精确延时(微秒级)对于某些对时间精度要求较高的程序,用c 写延时显得有些力不从心,故需用到汇编...晶振的机器周期为1us,所以,执行一条单周期指令所用时间就是1us,如NOP 指令。下 面具体阐述一下。

    单片机应用系统的可靠性设计.doc

    在程序的关键地方人为的插入一些单字节指 令,或将有效单字节指令重写称为指令冗余,通常是在双字节指令和三字节指令后插入 两个字节以上的NOP指令。这样即使跑飞程序飞到双字节指令和三字节指令操作数上。由 于窄...

    单片机常用代码大全.doc

    0x08,0x10,0x c0,0x62,0x84,0x60,0x70 4、循环函数intrins _crol_字符循环左移 _cror_字符循环右移 _irol_整数循环左移 _iror_整数循环右移 _lror_长整数循环左移 _lror_长整数循环右移 _nop_空操作8051 NOP 指令 ...

    C51中精确的延时与计算的实现

    其一:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒,就插入个这样的函数。 其二:对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。 在选择C51中循环...

    嵌入式系统/ARM技术中的单片机C语言延时需注意的问题

    // 产生一条NOP指令 作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,...

    深入浅出MIPS

    MIPS 本没有 NOP 指令,但由于对$0 寄存器的写入实际上无意义,可以 作为空操作使用。 事实上,编译器从高级语言(典型如 C/C++)转换为 MIPS 汇编指令时,一般总是遵守一 定的寄存器使用约定。某些寄存器用来从函数...

    电气控制与PLC试卷

    8.插入NOP指令时,程序容量 ,但对算术运算结果没影响。 9.ST和ST/的操作数包括_____________。 10. 系统程序一般包括:____________、翻译程序、_____________。 11. PLC控制系统是以_________形式来体现其控制功能...

    tm1622参考程序

    #include "intrins.h" //包含nop指令头文件 #define nop() _nop_();_nop_();_nop_();_nop_();_nop_(); //宏定义 /********************定义控制端口**********************/ sbit CS = P2^1; //片选 sbit READ = ...

    汇编语言程序设计.林邦杰.陈明

    4-9 没有运算的NOP指令 课后习题 第5章 基本输入与输出 5-1 软件中断INT指令 5-2 将一个字符串输出到屏幕 5-3 从键盘输入一个字符 5-4 将一个字符输出到屏幕 5-5 从键盘输入一个字符串 5-6 将一个字输出到屏幕 5-7 ...

    南开21春学期《计算机病毒分析》在线作业.docx

    它也可以将汇编形式的修补代码直接插入到一个程序 选项B:OllyDbg可以使用00项或nop指令填充程序 选项C:键单击高亮的条件跳转指令,然后选择Binary Fill with NOPs,该操作产生的结果时NOP指令替换了JNZ指令,这个...

    飞凌单片机FM8PE53学习

    NOP指令为0x1FFF, NOP指令可以换成其它指令进行重新烧录,所以对于不确定的程序,或可调整的程序可以用NOP前后占用空间,调试时就可以进行修改程序内容,将前面的NOP换成GOTO 可以跳过废弃的代码,注意已经写过的代码不要...

    嵌入式系统/ARM技术中的ARM数据处理指令

    数据处理指令分为3类:数据传送指令,如MOV;算术逻辑运算指令,如ADD、SUB和AND等;比较指令,如TST等。  数据传送指令用于向寄存器传入一个常数。...的寄存器来实玑NOP指令的效果。还可以专门移位一个

    单片机C语言延时需注意的问题

    // 产生一条NOP指令 作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,...

    TM1621参考程序

    #include "intrins.h" //包含nop指令头文件 #define uchar unsigned char //数据类型宏定义 #define uint unsigned int //数据类型宏定义 #define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_...

    ARM如何实现延时

    ARM延时问题一直是比较令人头疼的问题,因为ARM是流水工作,并且在程序跳转的时候不遵循流水规律,所以不像51单片机一样好计算,今天为了调18B20,因此把ARM的延时问题研究了一下。总结起来,有三种计算方法。

Global site tag (gtag.js) - Google Analytics