【原创】演示文本方式下显示汉字的汇编源程序

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

;

; 演示文本方式下显示汉字的汇编源程序

; 文件名:myname.asm

;

; 作者: 黄志斌 2001年12月4日于广西河池

; 说明: 本程序通过调用BIOS 10h替换系统字模来显示汉字

; 入口: ax=1100h

; bh=字模的高度(有效值:0~20h,默认值:10h)

; bl=被替换的字模集代号(有效值:0~7)

; cx=要替换的字模数

; dx=被替换的第一个字模所对应的字符的ASCII

; es:bp=新字模起始地址

; int 10h

; 要恢复系统字符集,可作如下调用:

; ax=1104h

; bl=字模集代号(有效值:0~7)

; int 10h

; 使用方法:

; masm myname;;

; link myname;;

; exe2bin myname.exe myname.com

;

; 注意:本程序未按该字的机内码替换字模,因此不能运行在汉字操作系统下

; 也就是说,要想让程序在中英文下都能正常显示汉字,那么就要汉字的内码进行替换

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

codeseg segment public 'code'

;==============================

org 100h

assume es:codeseg,ss:codeseg

assume cs:codeseg,ds:codeseg,es:codeseg

;-----------------------------

main proc near

mov ax,1100h

mov bh,10h

mov bl,0

mov cx,6

mov dx,200

lea bp,mode

int 10h

mov ah,09h

lea dx,myname

int 21h

mov ah,7

int 21h

mov ax,1104h

mov bl,0

int 10h

mov ax,4c00h

int 21h

;(or int 20h)

main endp

;---------------------

mode db

100B,100B,111111B,100B,100B,11111111B,1B,11111B,10001B,11111B,10001B,11111B,10000B,100B,11000B,1100000B

db

01000000B,01010000B,11111000B,01000000B,01000100B,11111110B,00010000B,11111000B,00010000B,11110000B,00010000B,11110000B,00000000B,01100000B,00011000B,00000100B

db

1B,1B,1B,11111111B,1B,1B,1B,111111B,0B,10B,10001B,1010000B,1010000B,10010000B,1111B,0B

db

00000000B,00000000B,00000100B,11111110B,00000000B,00000000B,00010000B,11111000B,0B,00000000B,10000000B,10000100B,00010010B,00010010B,11110000B,0B

db

0B,100000B,10001B,0B,11111100B,1011B,1001000B,101000B,101001B,10001B,101001B,100101B,1000101B,10000001B,11B,0B

db

10000B,00010000B,11110100B,10010B,00010000B,11111110B,00010000B,01010000B,01010000B,01110000B,01010000B,01001000B,01001000B,01101010B,10000110B,10B

myname db 200,201,202,203,204,205,'$'

;======================

codeseg ends

end main

我用C语言写有一个程序可以直接从ucdos字库中读取指定的汉字的字模,并按汇编或C语

言数据格式存放到文件中,将它们放到相应的源程序中就可以了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有