2011-08-15 102 views
2

假设我在汇编程序中编写程序,并且意外地使用了一些错误的操作码或引入了某种错误。汇编语言是否危险?

这是可能的,因为程序集是如此低级的语言,我可能会意外地做一些破坏性的东西?

或者操作系统(任何或全部)是否保持良好的资源管理,沙箱等级可以缓解这种情况?

+2

你是什么意思“破坏性”和“危险的?” – Incognito

+0

@Incognito字典定义,“容易受到伤害”。 –

+1

@digitxp“有什么危害?” –

回答

3

是的,如果你写不正确的代码,那么可能会发生不好的事情。在很多语言中都是如此,甚至是高级语言(假设高级语言中考虑System.delete("*.*"))。但在汇编程序中,很容易发现难以发现的错误。

3

这与运行一个可能存在bug的C程序没有什么不同 - 毕竟,即使是高级程序最终也会运行机器指令。当你在装配中编程时,你刚刚开始接近最终结果。除非你以某种方式在OS提供的保护之外运行你的代码,否则你应该没有特别的问题。

2

这取决于你的意思是“危险的”。

开发人员可能会犯任何语言错误 - 低级别或高级别 - 可能导致不良行为。不良行为是否危险取决于应用。例如,我主要在嵌入式系统中工作,用于生命关键的医疗应用。在我的工作中,编码错误可能会伤害患者。同样,另一个错误可能会损害设备(例如:考虑LCD屏幕刷新控制器中的计时错误或电源激活或禁用顺序中的逻辑错误)。

当在组装中工作时,开发人员几乎假定所有将要执行的代码的责任。当用更高级的语言工作时,编译器会承担一部分负担。因此,当开发人员愿意编写“裸机”代码时,很容易出错。为了弥补,一个软件开发程序应该有良好的流程(良好的文档,编码标准,设计评审,代码评审等),以帮助减少错误。