单片机种,程序“飞掉”是什么意思呢

单片机种,程序“飞掉”是什么意思呢,第1张

单片机在工作过程中也常常会由于电启丛源的投入和切除,瞬间短路以及由电网锋竖串进来的干扰脉冲而引起CPU的工作紊乱,程序银旁大“跑飞”,即程序进入非预定的区域而无秩序地运行。程序出错还是进入死循环都是跑飞可能的结果.

nop指令的作用:

1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)

2)通过nop指令产生一定的延迟,但蠢贺绝是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟;-->具体应该说是占用了3个时钟脉冲!

3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;

4)清除由上一个算术逻辑指令设置的flag位;

5)破解:对于原程序中验证部分使用nop来填充,使验证失效;

6)有一个朋友说的比较厉害--在航天飞机控制程序中防止程序跳飞!

解释如下:在空间放射性环境下,放射性子粒很容易使内存位元改变(呵呵,有点基因突变的感觉),这样如果改变的是jump,call指令的存贮位置的话拍渣,就会导致程序跳转到一个不可以预置的位置,对于关键系统来说的确是灾难性的。所以就在被调用程序之前填充nop指令,这样即使跳转到稍前或者稍后的位置,也不会造成影响。

计算机科学中,NOP或NOOP(No Operation或No Operation Performed的缩写,意为无 *** 作)是汇编语言的一个指令,一系列编程语句,或网络传输协议中的表示不做任何有效 *** 作的命令。

NOP指令通常用于控制时序的目的,强制内存对齐,防止流水线灾难(en:Hazard (computer architecture)),占据分支指令造成的延迟(delay slot),或是作为占位符以供程序的改善(或替代被移除的指令)。在某些情况中,NOP指令会产生副作用;例如在摩托罗拉 68000处理器中,NOP *** 作码会产带姿生流水线同步。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8275201.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存