月沙工具箱
现在位置:月沙工具箱 > 学习工具 > 汉英词典

两次扫描的汇编程序英文解释翻译、两次扫描的汇编程序的近义词、反义词、例句

英语翻译:

【计】 two-pass assembler

分词翻译:

两次的英语翻译:

twice
【医】 bis-

扫描的英语翻译:

scan; scanning
【计】 fineness; scanning
【医】 scanning

汇编程序的英语翻译:

【计】 AP; ASLR; ASM; assemble program; assembler; assembler program
assembler routine; assembly program; assembly routine; ASSM

专业解析

在计算机编程领域中,"两次扫描的汇编程序"(Two-pass Assembler)是指需要经过两个处理阶段才能完成源代码翻译的汇编器系统。该术语由汉语直译为英语时,"两次扫描"对应"two-pass","汇编程序"即"assembler"。

第一次扫描(First Pass)主要完成符号表构建:

第二次扫描(Second Pass)执行代码生成:

该设计可有效解决单遍汇编器无法处理前向引用的问题,根据《计算机系统要素》(Nisan & Schocken,2005)的论述,两次扫描机制通过分离符号解析与代码生成阶段,既保证了汇编过程的完整性,又提高了编译效率。在IBM System/360等经典计算机架构中,这种汇编器设计被广泛采用。

网络扩展解释

汇编程序采用两次扫描的方式完成对源程序的翻译,主要原因是处理汇编语言中符号的前向引用问题(即符号可能在后续代码中定义,导致首次扫描时无法确定其地址)。以下是两次扫描的详细解释:


第一次扫描

核心任务:建立符号表(ST)并处理与存储分配相关的伪指令。

  1. 符号表(ST)
    • 记录所有标号(Label)及其对应的地址值(由位置计数器LC确定)。
    • 例如,标号LOOP对应的地址为0x100
  2. 位置计数器(LC)
    • 初始值为0,根据指令或伪指令的长度动态递增。
    • 若遇到机器指令或存储分配伪指令(如DBRESW),LC增加对应指令长度。
  3. 表格使用
    • MOT1(机器指令表):记录指令助记符、长度(如MOV占2字节)。
    • POT1(伪指令表):处理存储分配类伪指令(如ORGEND)。
  4. 伪指令处理
    • 调用POT1中的子程序,处理如定义数据段、调整LC初值等操作。

第二次扫描

核心任务:生成目标程序的机器码。

  1. 符号解析
    • 利用第一次扫描生成的ST表,将符号(如标号、变量)替换为实际地址。
  2. 机器码转换
    • MOT2(机器指令表):包含指令助记符对应的二进制操作码、格式(如MOV AX, BX对应8B C3)。
    • POT2(伪指令表):处理非存储类伪指令(如宏展开)。
  3. 操作数处理
    • 将操作数(如立即数、寄存器)转换为二进制形式,并填充地址偏移量。
    • 例如,JMP LOOP中的LOOP根据ST表转换为具体地址值。

两次扫描的必要性


示例流程

假设源程序片段:

ORG 100H
LOOP: MOV AX, [VAR]
JNZ LOOP
VAR DW 0
  1. 第一次扫描
    • ORG 100H:设置LC=100H。
    • LOOP:记录ST表,LOOP: 100H
    • MOV:LC += 指令长度(假设3字节→LC=103H)。
    • VAR:记录ST表,VAR: 103H(假设DW占2字节→LC=105H)。
  2. 第二次扫描
    • MOV AX, [VAR]→操作码8B 06 + 地址03 01(小端模式)。
    • JNZ LOOP→操作码75 + 偏移量FD(-3的补码)。

通过两次扫描,汇编程序有效解决了符号依赖和存储分配问题,最终生成可执行的机器码程序。如需完整技术细节,可参考权威教材或汇编程序规范(来源:、2、8、9、14)。

分类

ABCDEFGHIJKLMNOPQRSTUVWXYZ

别人正在浏览...

阿-希二氏综合征饱和铁心磁强计编辑程序生成程序电子资料处理机器缔约国名单对流传质对生分担债券隔焰焙烧炉鬼祟灰霉胺净计价法静液封绝对有利卡片分类机克腊斯克氏卧位历史文化遗迹弥散菌落蜜亚胺脓硫烯普鲁卡因声音联想诗韵水包油乳状液税损贷项私心跳脚拖动土生土长位带控制