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

博客展示了一段汇编代码,包含代码段定义、主程序逻辑等操作。同时提到用C语言编写的程序,可从ucdos字库读取指定汉字字模,并按汇编或C语言数据格式存到文件,用于源程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;
;  演示文本方式下显示汉字的汇编源程序
;
; 文件名: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语言数据格式存放到文件中,将它们放到相应的源程序中就可以了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫郢剑侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值