asm汇编源代码之-字库转换程序

将标准的16x16点阵汉字库(下载16x16汉字库)转换成适合VGA文本模式下显示的点阵汉字库

本程序需要调用file.asm中的子程序,所以连接时需要把file连接进来,如下

C:\> tlink chghzk + file

调用参数描述如下

|---------------------------------------------------------------------|
| C:\> chghzk ; 无调用参数,转换标准库文件(SRC16.FNT)为适合VGA文本模式显示的汉字库(DST16.FNT) |

复制代码
; more source code at http://www.ahjoe.com/source/srcdown.asp

; CHANG A 16*16 HZK FILE TO VIDEO CHAR FORMAT

        EXTRN   FOPEN:FAR, FCREATE:FAR, FREAD:FAR, FWRITE:FAR
        EXTRN   FSIZE:FAR, FPOS:FAR
CODE    SEGMENT
        ASSUME  CS:CODE
SOURCE  DB      'SRC16.FNT',0
DEST    DB      'DST16.FNT',0
ERRINFO DB      'ERROR!',07,0DH,0AH,'$'
GOODINFO        DB      'GOOD!',0DH,0AH,'$'
SBUFF   DW      16 DUP (0)
DBUFF   DW      16 DUP (0)
SFINO   DW      0FFH
DFINO   DW      0FFH
TSIZE   DW      0
        DW      0

BEGIN:  MOV     AX, CS
        MOV     DS, AX
        MOV     ES, AX
        MOV     DX, OFFSET SOURCE
        MOV     AL, 00
        CALL    FOPEN
        JNC     NETTE
        JMP     ERROR
NETTE:
        MOV     SFINO, AX
        MOV     DX, OFFSET DEST
        MOV     AL, 01
        CALL    FCREATE
        JC      ERROR
        MOV     DFINO, AX
        MOV     AX, SFINO
        CALL    FSIZE
        JC      ERROR
        MOV     TSIZE, AX
        MOV     TSIZE+2, DX
        MOV     AL, 00
        XOR     CX, CX
        MOV     DX, CX
        MOV     BX, SFINO
        CALL    FPOS
CONTI:
        MOV     AX, SFINO
        MOV     DX, OFFSET SBUFF
        MOV     CX, 32
        CALL    FREAD
        JC      ERROR
        MOV     DI, OFFSET DBUFF
        CLD
        MOV     CX, 16
        MOV     SI, OFFSET SBUFF
REPEA1:
        MOVSB
        INC     SI
        LOOP    REPEA1

        MOV     CX, 16
        MOV     SI, OFFSET SBUFF+1
REPEA2:
        MOVSB
        INC     SI
        LOOP    REPEA2
        MOV     DX, OFFSET DBUFF
        MOV     AX, DFINO
        MOV     CX, 32
        CALL    FWRITE
        JC      ERROR
        DB      66H
        MOV     AX, 32
        DW      0
        DB      66H
        SUB     TSIZE, AX
        JZ      OVER
        JMP     CONTI


OVER:
        MOV     DX, OFFSET GOODINFO
SHOO:
        MOV     AH, 09
        INT     21H
        MOV     AH, 4CH
        INT     21H

ERROR:
        MOV     DX, OFFSET ERRINFO
        JMP     SHOO
CODE    ENDS
        END     BEGIN
相关推荐
ok06017 天前
汇编(六)——汇编语言程序格式及MASM
汇编·asm
好记忆不如烂笔头abc3 个月前
一体机cell服务器更换内存步骤
asm
施嘉伟3 个月前
Oracle添加ASM磁盘故障
数据库·oracle·asm
莳花微语4 个月前
Oracle ASM存储学习和相关视图
数据库·oracle·asm
charlie1145141915 个月前
简单汇编教程10 数组
汇编·学习·nasm·asm·ia32
charlie1145141916 个月前
基于x86_64汇编语言简单教程6: 变量,常量,与运算
汇编·学习·教程·asm
hcgeng10 个月前
Android网络性能监控方案 android线上性能监测
前端·asm
zengk5621 年前
一、认识 JVM 规范(JVM 概述、字节码指令集、Class文件解析、ASM)
java·jvm·asm·class字节码
京东云技术团队1 年前
ASM字节码操作类库(打开java语言世界通往字节码世界的大门) | 京东云技术团队
java·python·京东云·asm·字节码