汇编语言是否危险?

4

假设我用汇编语言编写程序,不小心使用了一些错误操作码或引入了某种错误。由于汇编是一种低级语言,这可能会导致意外破坏吗?

或者操作系统(任何一个或所有操作系统)是否保持良好的资源管理、沙盒等级,以减轻这种情况所带来的影响?


2
你说的“破坏性”和“危险性”是什么意思? - Incognito
@Incognito "易受伤害" 的字典定义。 - Casey Chow
@Jarrod 人类 - Casey Chow
你的程序控制任何核设备吗?空中交通?华尔街交易? - Bo Persson
3个回答

5

是的,如果你编写错误的代码,那么可能会发生糟糕的事情。这在许多编程语言中都是真实的,即使是高级语言(考虑在假设的高级语言中使用System.delete("*.*"))。但是在汇编语言中,很容易犯难以发现的错误。


4
这与运行可能存在错误的C程序没有什么不同 - 毕竟,即使您的高级程序最终也会运行机器指令。 当您使用汇编语言编程时,您只是从更接近这个结果的地方开始。 除非您在操作系统提供的保护之外运行代码,否则您应该没有特别的问题。

3
这取决于你所说的“危险”是什么意思。任何语言 - 低级或高级 - 中的开发人员都可能犯错误,导致不希望出现的行为。无论不希望出现的行为是否危险都取决于应用程序。例如,我主要从事生命关键医疗应用的嵌入式系统开发工作。在我的工作中,编码错误可能会对患者造成伤害。同样,另一个错误可能会损坏设备(例如:考虑LCD屏幕刷新控制器中的时间错误或电源供应启动或停止序列中的逻辑错误)。
当使用汇编语言时,开发人员几乎承担执行代码的所有责任。当使用高级语言时,编译器承担了部分负担。因此,在开发人员采用编写“裸机”代码时很容易犯错误。为了弥补这一点,软件开发计划应该有良好的流程(好的文档、编码标准、设计评审、代码评审等),以帮助最小化错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接