iT邦幫忙

0

【系統程式】2.1基本組譯器功能

2.1基本組譯器功能

2.1.1簡易SIC組譯器

組譯器的兩階段處理

  • 1.掃描原始程序中的標記,並計算位置
  • 2.執行前述的轉換動作

組譯器指引(虛擬指令)

  • 1.用於只是組譯器該如何處理原始程式,而不會轉換成指令
  • 2.EX:BYTE,WORD是轉換位元or字組指令,RESB,RESW保留記憶體空間

object code


一個機器碼包含標頭(Header),本文(text),結束(end)的紀錄

  • 標頭紀錄:
    • 欄1 H
    • 欄2-7 程式名稱
    • 欄8-13 目的程式的起始位置
    • 欄14-19 目的程式的長度(16進值)
  • 本文紀錄:
    • 欄1 T
    • 欄2-7 目的碼的起始位置
    • 欄8-9 目的碼的長度
    • 欄10-69 目的碼
  • 結束紀錄:
    • 欄1 E
    • 欄2-7 目的程式中第一個可執行的指令

2.1.2組譯器演算法與資料結構

資料結構

OPTAB(運算碼表)

  • 內容:
    • 查詢助記碼
    • 轉譯成對應的機器語言
    • 指令格式和長度
  • 第一階段:
    • 驗證原始碼是否正確
    • 找出指令長度來增加LOCCTR值
  • 第二階段:
    • 確定指令格式
    • 轉成機器碼

LOCCTR(位置計數器)

  • 協助位址的分配
  • 初始值即為start
  • 處理完每一行的敘述後,長度加到LOCCTR中

SYMTAB(符號表)

  • 內容:
    • 紀錄名稱
    • 紀錄位址
    • 錯誤旗標
    • 資料或指令的其他資訊(資料型態或長度)
  • 第一階段:
    • 找出原始程式的標記和LOCCTR值存到符號表中
  • 第二階段:
    • 在SYMTAB中尋找運算元的標記符號

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言