AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > 汇编语言

通用的图形字模和汉字字模汇编程序

51自学网 http://www.51zixue.net

原贴及讨论:http://bbs.bccn.net/thread-115348-1-1.html

课程设计时做的,拿上来show给神飘飘看看,嘿嘿。用图形方式显示字模

占位,公布源程序:

DATA    SEGMENT
;定义0-N个字模
MAP1    DB 001H,080H,0E7H,081H,0C1H,06H,00H,0CH,082H,021H
    DB 0CDH,02EH

;由于程序支持画N个字模,下面的定义变量在画图之前才被赋值
WID    DW ?    ;图的宽度(像素)
HEI    DW ?    ;图的高度
TMP1    DW ?    ;行中像素游标(横向)
TMP2    DW ?    ;行数游标(纵向)
CNT    DB 0    ;比特游标,从0-7
XORG    DW ?    ;控制图像的初始X
YORG    DW ?    ;控制图像的初始Y

DATA    ENDS

CODE    SEGMENT
    ASSUME    DS:DATA,CS:CODE
MAIN:
    MOV    AX,DATA
    MOV    DS,AX
        
        
    ;*****进入图形模式****    
    MOV    AH,0
    MOV    AL,12H    ;640*480
    INT    10H    ;调用中断使设置生效
    

    ;*****画图****
    ;初始坐标,载入字模的位置
    
    LEA    SI,MAP1
    MOV    XORG,0
    MOV    YORG,0
    MOV    WID,640
    MOV    HEI,480
    CALL    DRAW

    ;*****按键退出*****
    MOV    AH,0            
    INT    16H                
                            
    MOV    AX,0003H        ;还原文字模式            
    INT    10H        ;调用中断使设置生效
    MOV    AH,4CH                
    INT    21H

DRAW    PROC NEAR
    MOV    CX,XORG
    MOV    DX,YORG
    PUSH    BX
    MOV    BX,WID
    MOV    TMP1,BX
    MOV    BX,HEI
    MOV    TMP2,BX
    MOV    CNT,0
    POP    BX
    
    LODSB    ;读出字模的一个字节到AL
NEXT2:
    SHL    AL,1    ;逐个BIT读出
    JNC    NEXT1    

    ;调用中断画点
    PUSH    AX
    MOV    AH,0CH
    MOV    AL,15    ;确定画图颜色,0-15
    INT    10H
    POP    AX

NEXT1:
    INC    CNT    ;一个字节所有BIT读完以后载入下一个字节
    CMP    CNT,8
    JNZ    NEXT3
    LODSB
    MOV    CNT,0
NEXT3:
    INC    CX
    DEC    TMP1
    JNZ    NEXT2    ;TMP!=0则上去继续,TMP1=0则换行
    PUSH    BX
    MOV    BX,WID    ;TMP1至零
    MOV    TMP1,BX
    POP    BX
    MOV    CX,XORG
    INC    DX
    DEC    TMP2
    JNZ    NEXT2    ;所有行读完结束,没读完上去继续
    RET
DRAW    ENDP
CODE    ENDS
    END    MAIN

 

 

 
上一篇:用Win32asm写的"同时打开多个网页的实用小工具  下一篇:汇编语言写的自动关闭QQ迷你首页的小程序