第一次传递

在第一次通过过程中,汇编程序会检查指示信息在当前汇编方式下是否合法。

在第一次通过时,汇编程序执行以下任务:

  • 检查这些指示信息在当前组装方式下是否合法。
  • 为您请求的指示信息和存储区域分配空间。
  • 填写常量的值 (如果可能)。
  • 构建符号表 (也称为交叉引用表) ,并在此表中为它在语句的标签字段中迂到的每个符号创建一个条目。

汇编程序一次读取源文件中的一行。 如果此源语句在标签字段中有有效的符号,那么汇编程序将确保该符号尚未用作标签。 如果这是首次将该符号用作标签,那么汇编程序会将该标签添加到符号表中,并将当前位置计数器的值分配给该符号。 如果该符号已用作标签,那么汇编程序将返回错误消息Redefinition of symbol并重新分配符号值。

接着,汇编程序会检查指令的助记符。 如果助记符是针对当前组装方式合法的机器指令,那么组装器会确定指令的格式 (例如, XO 格式)。 然后,汇编程序分配保存指令的机器代码所必需的字节数。 位置计数器的内容将按该字节数递增。

当汇编程序迂到注释 (以 # (井号) 开头) 或行尾字符时,汇编程序将开始扫描下一条指令语句。 汇编程序将扫描语句并构建其符号表,直到没有更多语句需要读取为止。

在第一次传递结束时,已分配所有必需的空间,并且程序中定义的每个符号都已与符号表中的位置计数器值相关联。 当没有更多要读取的源语句时,第二遍从程序的开头开始。

注: 如果在第一次传递中发现错误,那么组合件进程将终止,并且不会继续第二次传递。 如果发生此情况,那么汇编程序列表仅包含在汇编程序第一次传递期间生成的错误和警告。