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

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

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

;

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

;

; 文件名: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语言数据格式存放到文件中,将它们放到相应的源程序中就可以了。


相关文章
|
8月前
|
C++ 开发者
2C++的程序的构成和书写形式
2C++的程序的构成和书写形式
51 2
|
8月前
|
算法 编译器 C语言
C语言猜数字小游戏(也包含python实现的用法)
本文基于VS2022、pycharm和前面的知识,写一个凭借分支与循环的小游戏,比如: 写一个猜数字游戏 游戏要求: 电脑自动生成1~100的随机数 玩家猜数字,猜数的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束 在pyhton中生成随机数是比较简单的,可以直接导入random的包,直接生成随机数,导致写猜数字小游戏变成了判读语句和循环语句嵌套就能写出来,所以我不做过多的介绍了,可以直接看后面的代码展示,想了解更多的python可看python的基础知识,这里面有我在学习python的过程中写的笔记
112 0
【原创】演示判断一个字符串是否为另一字符串的子串的函数的汇编源程序
【原创】演示判断一个字符串是否为另一字符串的子串的函数的汇编源程序
|
4月前
|
API Windows
用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcpyn()和lstrcmp(),区分大小写)
用MASM32来DIY判断字符串1是否为字符串2的子串的函数演示代码(源码+exe)(应用lstrcpyn()和lstrcmp(),区分大小写)
|
8月前
|
编译器 开发者 C++
8086 汇编笔记(三):第一个程序
8086 汇编笔记(三):第一个程序
|
8月前
|
存储 Linux C语言
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-2
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
8月前
|
自然语言处理 Linux 编译器
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)-1
C语言进阶第十一节 --------程序环境和预处理(包含宏的解释)
|
8月前
|
存储 机器学习/深度学习 自然语言处理
【进阶C语言】编译与链接、预处理符号详解
【进阶C语言】编译与链接、预处理符号详解
80 0
|
存储 自然语言处理 编译器
程序编译和链接的过程/预处理符号和用法【C语言】
程序编译和链接的过程/预处理符号和用法【C语言】
82 0
|
存储 自然语言处理 编译器
C语言进阶---程序的编译(预处理操作+链接)
本章主要介绍C语言的程序的编译,主要内容有:程序的翻译环境和执行环境、编译、链接细节剖析、运行环境、预处理详解。并且将一道百度面试题---模拟实现offsetof宏的功能。
C语言进阶---程序的编译(预处理操作+链接)

热门文章

最新文章