[求助]关于显示汉字
											 程序代码:
程序代码:data segment
 LINE_CHAR    EQU    210    ;在屏幕上第几行显示
 COL_CHAR    EQU    230    ;在屏幕上第几列显示
 COLOR_CHAR    EQU    0EH    ;显示颜色
 CHARS        EQU    (offset disp_data_end-offset disp_data)/2
 CC_FILE        DB    'D:\HZK16',0    ;字库文件名,用 UCDOS 的16点阵汉字库
 HANDLE        DW    ?            ;file handle
 DISP_DATA    DB    '罗云彬'        ;要显示的汉字
 DISP_DATA_END    EQU    THIS BYTE
 D_OPEN_ERROR    DB    'File D:\HZK16 not found !',0dh,0ah,24h
 
data ends
;
;
code segment
main proc far
assume cs:code,ds:data
start:
 push ds
 sub ax,ax
 push ax
 mov ax,data
 mov ds,ax
 mov    ax,3d00h        ;打开汉字库
 mov    dx,offset cc_file
 int    21h
 jnb    open_ok
        
 mov    ah,9
 mov    dx,offset d_open_error
 int    21h
open_ok:
 mov    handle,ax
 mov    si,offset disp_data
 mov    di,offset zi_buffer
 mov    cx,chars
 cld
ins2:
 lodsb
 mov    ah,al
 lodsb
 call    get_dots        ;读出汉字点针
 loop    ins2
 call    disp_cc            ;显示到屏幕
 MOV AX,4C00H
 INT 21H 
GET_DOTS    PROC
 push ax
 sub    ax,0a1a1h    ;汉字的内码从 A1区开始
 cwd
 mov    dl,al        ;所以绝对开始区是内码-A1
 mov    al,ah        ;点阵在字库中的位置为    
 cbw
 mov    bl,94        ;((汉字码1-A1)* 94 + 汉字码2 - A1)* 32
 mul    bl
 add    ax,dx
 mov    bx,32
 mul    bx
 mov    cx,dx
 mov    dx,ax
 mov    ax,4200h    ;移动读写指针到点阵数据位置
 mov    bx,handle
 int    21h
 mov    ah,3fh
 mov    cx,32
 mov    dx,di
 int    21h
 pop ax
 add    di,32
 ret
GET_DOTS    ENDP
DISP_CC        PROC
 mov    ax,12h        ;640*480 mode
 int    10h        ;设置640*480/16色显示模式
 mov    cx,chars
 mov    si,offset zi_buffer
 mov    bx,col_char-20    ;BX = column
dh_lop0:
 add    bx,20        ;every char column+20
 push    cx
 mov    cx,16        ;l6 lines/char
 mov    dx,line_char    ;DX = start line
dh_lop1:
 push    bx
 push    cx
 lodsb            ;16 dots/line
 mov    ah,al
 lodsb
 mov    cx,16
dh_lop2:
 shl    ax,1
 push    ax
 push    bx
 push    cx
 jc    db_color
 xor    al,al        ;back color is 0
 jmp    short db_draw
db_color:
 mov    al,color_char
db_draw:
 mov    ah,0ch
 mov    cx,bx
 xor    bh,bh
 int    10h
 pop    cx
 pop    bx
 pop    ax
 inc    bx        ;inc column
 loop    dh_lop2
 inc    dx        ;next line
 pop    cx
 pop    bx
 loop    dh_lop1
 pop    cx
 loop    dh_lop0
 xor    ah,ah
 int    16h
 mov    ax,3
 int    10h
 ret
DISP_CC        ENDP
ZI_BUFFER    EQU    THIS BYTE
main endp
code ends
 end start我这个程序,HZK16在,为什么一直提示File D:\HZK16 not found !

 
											





 
	    
 
					
				
			 
					
				
			
 
					
				
			 
										
					
	