月沙工具箱
現在位置:月沙工具箱 > 學習工具 > 漢英詞典

兩次掃描的彙編程式英文解釋翻譯、兩次掃描的彙編程式的近義詞、反義詞、例句

英語翻譯:

【計】 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

别人正在浏覽...

【别人正在浏覽】