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

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
.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
CC_FILEDB'C:\UCDOS\HZK16',0;字库⽂件名,⽤ UCDOS 的16点阵汉字库
HANDLEDW?;file handle
DISP_DATADB'罗云彬';要显⽰的汉字
DISP_DATA_ENDEQUTHIS BYTE
D_OPEN_ERRORDB'File C:\UCDOS\HZK16 not found !',0dh,0ah,24h
install:
movax,3d00h;打开汉字库
movdx,offset cc_file
int21h
jnbopen_ok
movah,9
movdx,offset d_open_error
int21h
中国麻风皮肤病杂志
movhandle,ax
movsi,offset disp_data
寇铁movdi,offset zi_buffer
movcx,chars
cld
ins2:
lodsb
movah,al
梅洛庞蒂lodsb
callget_dots;读出汉字点针
loopins2
calldisp_cc;显⽰到屏幕
int20h
GET_DOTSPROC
pusha
subax,0a1a1h;汉字的内码从 A1区开始
塔山阻击战的历史简介
cwd
movdl,al;所以绝对开始区是内码-A1
moval,ah;点阵在字库中的位置为
cbw
movbl,94;((汉字码1-A1)* 94 + 汉字码2 - A1)* 32 mulbl
addax,dx
movbx,32
mulbx
movcx,dx
movdx,ax
movax,4200h;移动读写指针到点阵数据位置movbx,handle
int21h
movah,3fh
movcx,32
popa
adddi,32
ret
GET_DOTSENDP
DISP_CCPROC
movax,12h;640*480 mode
int10h;设置640*480/16⾊显⽰模式movcx,chars
movsi,offset zi_buffer
movbx,col_char-20;BX = column dh_lop0:
addbx,20;every char column+20 pushcx
毛利率法
movcx,16;l6 lines/char
movdx,line_char;DX = start line
dh_lop1:
pushbx
pushcx
lodsb;16 dots/line
movah,al
lodsb
movcx,16
dh_lop2:
shlax,1
pushax
pushbx
pushcx
jcdb_color
xoral,al;back color is 0
jmpshort db_draw
db_color:
moval,color_char
movah,0ch
movcx,bx
xorbh,bh
int10h
popcx
popbx
popax
incbx;inc column
loopdh_lop2
incdx;next line
popcx
popbx
loopdh_lop1
popcx
蜗轮蜗杆减速器设计loopdh_lop0
xorah,ah
int16h
movax,3
int10h
ret
DISP_CCENDP
ZI_BUFFEREQUTHIS BYTE CODEENDS
END START

本文发布于:2024-09-21 19:46:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/239124.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:点阵   数据   字符   字库
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议