首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 組合語言

組語原始碼系列:字元對照表 (CTABLE.ASM)

     編輯:組合語言

前言

這是一個極簡的 DOS 時代組語資料檔,定義一個 256 位元組的字元對照表 ctable,用於字元代碼轉換或鍵盤掃描碼對應。雖然規模微小,但展示了組語資料段定義、重複填充、ASCII 控制碼與可列印字元排列的典型寫法。

原始碼完整內容

ctable segment para public 'DATA'
    db 9 dup(' ')          ; 0x00-0x08: 空白
    db 9,10,' ',12,13      ; 0x09=TAB, 0x0A=LF, 0x0B=VT, 0x0C=FF, 0x0D=CR
    db 13 dup(' ')         ; 0x0E-0x1A: 空白
    db 27                  ; 0x1B = ESC
    db 4 dup(' ')          ; 0x1C-0x1F: 空白
    db ' !"#$%&',39,'()*+,-./0123456789:;<=>?@'  ; 0x20-0x40
    db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`'          ; 0x41-0x60
    db 'abcdefghijklmnopqrstuvwxyz{|}~'            ; 0x61-0x7E
    db 52 dup(' ')         ; 0x7F-0xB2: 空白
    db '|++++++|+++++++++-++++++++-+++++++++++++' ; 0xB3-0xE0 繪圖字元
    db 36 dup(' ')         ; 0xE1-0xFF: 空白
ctable ends
end

表格結構解析

索引範圍內容用途
0x00-0x08空白控制碼保留
0x099 (TAB)水平定位
0x0A10 (LF)換行
0x0B' '垂直定位 (VT) 此處映射為空白
0x0C12 (FF)換頁
0x0D13 (CR)歸位
0x0E-0x1A空白其他控制碼
0x1B27 (ESC)逸出鍵
0x1C-0x1F空白檔案/群組/記錄/單元分隔
0x20-0x7E標準 ASCII 可列印字元空白、標點、數字、大小寫字母、符號
0x7F-0xB2空白刪除鍵、擴展 ASCII 保留
0xB3-0xE0IBM PC 繪圖字元 (箱線、交叉、單/雙線)文字模式畫面繪製
0xE1-0xFF空白保留

歷史應用場景

  • 終端機模擬器、BBS 系統:將鍵盤掃描碼或遠端傳來的字元碼轉換為顯示字元。
  • 文字模式遊戲/介面:快速查找繪圖字元對應碼。
  • 代碼頁轉換:作為自訂代碼頁的基礎表格。

現代觀點

今日字元編碼以 Unicode (UTF-8/16) 為主,單一位元組對照表已罕見。但理解此類表格結構有助於:

  1. 舊系統移植與資料轉換工具開發。
  2. 嵌入式系統、開機載入器等受限環境的字元處理。
  3. 逆向工程分析舊版軟體二進位檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved