SIC 版本的 two pass assembler
- pass1: 將 source code 轉成 op code,並將相關資訊存至 intermediate file
- pass2: 根據 intermediate file 裡面的內容組合出完整的 object program 或進行報錯
- 如果 source code 有錯,會顯示錯誤
- START 可以更換起始位置
- END operand 可以隨意更換位置
- 重複定義的 symbol: duplicate definition
- Undefined symbol
- Mnemonic Error
- 遇到 RESW, RESB 會換行
- 可分辨 direct addressing 和 indexed addressing
- RSUB 有 label
- Indexed addressing 前後可以有空格
- BYTE C 'EOF',C 和單引號之間可以有空格
- BYTE C'E O F',單引號間可以有空格
- BYTE C'EOFFFFFFFFFFFFF',裡面可以無限字元
- START 開始之前有指令
- START 不是 16 進位
- END 後面還有指令
- Instruction format error
- Indexed Addressing 格式錯誤
- WORD operand 不是十進位
- BYTE 後面不是 C or X
- BYTE 少了單引號
- BYTE X 出現半個 byte
- BYTE X 不是 16 進位
- Contain of byte is null
- RSUB 有 operand
- Command 沒有 operand
- Label == Operand
- Label or Operand is mnemonic