高考申論題
110年
[電力工程] 計算機概論
第 二 題
二、什麼是一次(one-pass)及二次組譯器(two-pass assembler)?並試述其優缺點。(20 分)
📝 此題為申論題
思路引導 VIP
本題探討組譯器(Assembler)的設計邏輯,核心爭點在於「前向參考(Forward Reference)」的處理。思考方向:1. 為什麼需要掃描兩次?(因為後面的標記 Label 可能在前面就被使用了);2. 一次組譯器如何繞過這個問題?(回填 Backpatching);3. 比較兩者的資源消耗(記憶體 vs. 時間)。
🤖
AI 詳解
AI 專屬家教
【考點分析】 考點在於語言編譯程式(Compiler/Assembler)中符號表(Symbol Table)的建立與標記位置的解析(Resolution)。 【理論/法規依據】
▼ 還有更多解析內容
一次與二次組譯器
💡 解析「前向參考」與「符號表」建立機制的掃描次數差異。
| 比較維度 | 一次組譯器 (One-pass) | VS | 二次組譯器 (Two-pass) |
|---|---|---|---|
| 掃描次數 | 僅掃描原始碼一次 | — | 掃描原始碼二次 |
| 前向參考處理 | 使用回填表待後續修正 | — | 第一階段即解決所有位址 |
| 執行速度 | 較快,節省 I/O 時間 | — | 較慢,重複讀取原始碼 |
| 記憶體需求 | 較高(存放回填表與程式) | — | 較低(邏輯分段處理) |
| 設計複雜度 | 複雜(需處理動態回填) | — | 簡單(模組化定義明確) |
💬一次組譯器追求速度效率,二次組譯器則是教學與標準實作的首選。