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
相关推荐
尚雷558018 天前
Oracle ASM 存储更换与整体迁移实战整理
数据库·oracle·ocr·asm
浩浩测试一下23 天前
汇编 位运算 (逆向分析)
汇编·逆向·位运算·asm·windows编程·二进制逆向
abcnull1 个月前
用ASM做精准测试(Java)
java·jar·asm·字节码·精准测试
followYouself1 个月前
ASM开源库实现函数耗时插桩
android·asm·asm插桩·字节码插桩
浩浩测试一下2 个月前
RadASM 汇编工具从下载汉化配置汇编运行 --->>>>环境详细说明
汇编·asm·radasm·pe壳
I'm Jie6 个月前
Java 字节码工具 ASM,实现类的动态增强
java·spring boot·spring·asm·cglib·class
liulilittle6 个月前
C++ SSE/AVX/SHA/AES指令集检查,用于程序定向优化。
开发语言·c++·cpu·asm·detect·il·features
奋斗的小鹰8 个月前
ASM Bytecode Viewer 插件查看kotlin和java文件的字节码
android·kotlin·asm
汤姆花花10 个月前
OCI编程高级篇(十三) 直接路径装载分配句柄
asm·dul·oracle oci 编程
汤姆花花10 个月前
OCI编程高级篇(八) LOB写操作
oracle·asm·dul·oracle oci 编程