假设我在汇编程序中编写程序,并且我不小心使用了一些错误的操作码或引入了某种错误。
是否有可能,因为汇编是一种低级语言,我可能会意外地做一些破坏性的事情?
或者操作系统(任何或所有)是否保持良好的资源管理,沙盒等级别可以缓解这种情况?
答案 0 :(得分:3)
是的,如果您编写错误的代码,那么可能会发生不好的事情。在许多语言中都是如此,甚至是高级语言(在假设的高级语言中考虑System.delete("*.*")
)。但是在汇编程序中,很容易犯错很难发现的错误。
答案 1 :(得分:3)
与运行可能存在错误的C程序没什么不同 - 毕竟,即使是高级程序最终也会运行机器指令。当你在汇编中编程时,你刚刚开始接近那个最终结果。除非你以某种方式在操作系统提供的保护之外运行你的代码,否则你应该没有特别的问题。
答案 2 :(得分:2)
这取决于你所说的“危险”。
开发人员可能会以任何语言(低级或高级)犯错误,从而导致意外行为。不希望的行为是否危险取决于应用程序。例如,我主要在嵌入式系统中工作,用于生命攸关的医疗应用。在我的工作中,编码错误可能会伤害患者。同样,另一个错误可能会损害设备(例如:考虑LCD屏幕刷新控制器中的定时错误或电源激活或停用序列中的逻辑错误。)
在汇编时,开发人员几乎承担将要执行的代码的所有责任。使用更高级别的语言时,编译器会承担一些负担。结果,当开发人员采用编写“裸机”代码时,可以轻松地犯错误。为了弥补这一点,软件开发计划应该有适当的流程(良好的文档,编码标准,设计评审,代码审查等),以帮助减少错误。