Bootstrap

c语言中中文字库,读取汉字库中的汉字

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

一般在屏幕上显示汉字的时候需要汉字系统的支持,但需要自己显示汉字的时候,就需要自己读汉字字库文件,把字符点阵读出来,再用绘图的办法显示到屏幕上,本文是读 UCDOS 16点字库文件的示例。

在 UCDOS 的点阵字库 HZK16 中,字符点阵是按照汉字内码排列的,汉字的内码从一些图形字符开始,起始编码为 A1A1H,汉字内码第一位为区码,每区为 94 个汉字,第二位为每区内的编码,每个汉字的点阵为 16点*16点 共32字节,数据按第一行 1-8点,9-16点,第二行 1-8点,9-16点...排列,每位数据 1 为要显示点,0 为不显示点。汉字点阵数据在字库中的偏移量为 ((区码-A1H)*94 + (区内编码-A1H))*32。

本程序为一个简单的例子,要显示的汉字在变量 DISP_DATA 中,且没有考虑汉字、英文混用的情况。

源程序:

; Write in May 22,1996

;            By LuoYunBin ----- http://asm.yeah.net

.286

LINE_CHAREQU210;在屏幕上第几行显示

COL_CHAREQU230;在屏幕上第几列显示

COLOR_CHAREQU0EH;显示颜色

CHARSEQU(offset disp_data_end-offset disp_data)/2

CODESEGMENT

ASSUME CS:CODE,DS:CODE

ORG 100H

START:

jmpinstall

;