假设我用汇编语言写了一个程序,我不小心使用了一些错误的操作码,或者引入了某种bug。
既然汇编语言是如此低级的语言,我会不会意外地做一些破坏性的事情呢?
或者操作系统(任何或所有)是否保持良好的资源管理、沙箱等水平,以缓解这种情况?
发布于 2011-08-16 05:00:21
是的,如果你写了不正确的代码,那么糟糕的事情就会发生。这在许多语言中都是如此,甚至在高级语言中也是如此(假设高级语言中的System.delete("*.*") )。但是在汇编程序中,很容易犯一些很难发现的错误。
发布于 2011-08-16 05:00:29
这与运行可能有bug的C程序没有什么不同--毕竟,即使是您的高级程序最终也会运行机器指令。当你在汇编语言中编程时,你只是开始更接近最终的结果。除非你以某种方式在操作系统提供的保护之外运行你的代码,否则你不会有什么特别的问题。
发布于 2011-08-16 06:03:49
这取决于你说的“危险”是什么意思。
开发人员可以在任何语言中犯错误-无论是低级还是高级-这都可能导致不希望看到的行为。不受欢迎的行为是否危险取决于应用程序。例如,我主要在嵌入式系统中工作,用于至关重要的医疗应用程序。在我的工作中,一个编码错误可能会对病人造成伤害。同样,另一个bug可能会损害设备(例如:考虑LCD屏幕刷新控制器中的计时bug或电源激活或停用序列中的逻辑bug )。
当在汇编中工作时,开发人员几乎承担了将要执行的代码的所有责任。当在高级语言中工作时,编译器承担了其中的一些负担。因此,当开发人员求助于编写“裸机”代码时,很容易犯错误。为了弥补这一点,软件开发程序应该有良好的过程(良好的文档、编码标准、设计评审、代码评审等)。帮助最大限度地减少错误。
https://stackoverflow.com/questions/7070757
复制相似问题