2017-04-17 766 views
2

几乎我到目前为止所看到的所有简单的8051程序都以代码 LOOP: SJMP LOOP结尾。为什么一些8051程序以代码“LOOP:SJMP LOOP”结束

从我的理解,我认为上述指令通过一次又一次地调用相同的指令创建了一个无限循环。但是,什么是具有在节目结束无限循环的目的,如果它保持连连运行,那么什么时候该程序被终止。

+1

,使程序无法继续的最后一条指令执行后随机/半随机的数据。 CPU将其视为数据,并很乐意尝试执行内存中的任何内容,从而导致未定义的行为。把处理器放在这样一个循环中可以防止CPU漫无目的地穿过内存中的任何东西。 –

回答

5

不然怎么“终止”或结束裸机程序?通常没有停止或其他命令,处理器不停止。最安全/最干净的就是让它有无限循环(而不是仅仅在内存中漫游,试图执行它发现的内容)。

这么简单的教育处理器/微控制器的程序,程序,“结束”,你会想结束他们在一个无限循环如果处理器不必须停止。大多数微控制器永不死机他们跑什么永远的(他们可能会去在低功耗状态睡觉,但后来醒了,当你按下遥控器或任何一个按钮)。

相关问题