例如,假设汇编语言中的代码使用以下语法:
LOAD 14 // loads contents of memory location 14 into the accumulator
ADD #16 // adds 16 to the contents of the accumulator
STORE 15 // stores contents of accumulator in memory index 15
如果“LOAD”拼写错误怎么办?在这种情况下汇编程序会做什么? CPU的指令集是否会影响这个?
答案 0 :(得分:2)
汇编程序只是一种有趣的编译器。它接受一种语言(称为"汇编语言"它为它支持的CPU定义),并为汇编的指令生成二进制输出。
与其他编译器一样,当遇到语法错误时,会产生诊断。如果它是好的,它指出了语法错误的确切位置,但是我看到汇编器只是告诉你哪一行是错误的(可能有关于错误的提示,例如"错误的操作码&#34 )。这与糟糕的编译器没有什么不同。
生成诊断后,它通常会选择一些默认的语义操作(比如不生成二进制数据),并继续下一步的源代码。
就像常规编译器一样。
面对错误,大多数编译器的二进制输出通常是无用的;错误倾向于在语义中级联,如果它产生代码,则产生不适当的代码。 (许多编译器只在报告第一个错误时停止发出代码)。面对错误时汇编程序的二进制输出可能仍然有用。通常,错误仅影响生成的二进制代码的一小部分。