求助大神,程序结果运行不出呀
ASSUME CS:CODE,DS:DATA DATA SEGMENT
; FEDCBA9876543210
CNCHAR0 DW 0000010100000000B ;0 你
DW 0000100110000010B ;1
DW 0001000111111111B ;2
DW 0010001000100010B ;3
DW 0110010000100100B ;4
DW 1010100000101000B ;5
DW 0010000000100000B ;6
DW 0010000100100000B ;7
DW 0010000110101000B ;8
DW 0010000100101000B ;9
DW 0010001000100100B ;10
DW 0010001000100010B ;11
DW 0010010000100011B ;12
DW 0010100011100010B ;13
DW 0010000001000000B ;14
DW 0010000000000000B ;15这是一个汉字的点阵码
; FEDCBA9876543210
CNCHAR1 DW 0000100000000000B ;0 好
DW 0000100011111110B ;1
DW 0001000000000100B ;2
DW 0001000100001000B ;3
DW 1111111110010000B ;4
DW 0010001000001000B ;5
DW 0100001011111111B ;6
DW 1000010000001000B ;7
DW 0100010000001000B ;8
DW 0010100000001000B ;9
DW 0001100000001000B ;10
DW 0001100000001000B ;11
DW 0001010000001000B ;12
DW 0010010001001000B ;13
DW 0100011000110000B ;14
DW 1000000000010000B ;15这是另一个汉字的点阵码
CHARLST DW CNCHAR0,CNCHAR1
CNCOL DW 640/2-(20*2) ;显示列(模式640*480/16色)
CNROW DW 480/2-(16*1)-140
;CNROW DW 480/2-(16*1) ;显示行,这是在中间
CURCOL DW 0
CURROW DW 0 ;当前列与行
MSG0 DB 0DH,0AH,'Press any key to back to TEXT MODE 3, '
DB 'and clean the screen.$'
DATA ENDS
CODE SEGMENT
ENTRY: MOV AX,DATA
MOV DS,AX
MOV AX,12H ;进入640*480/16色图形模式
INT 10H
MOV DI,CNCOL ;显示汉字起始列
MOV DX,CNROW ;显示汉字起始行
SUB BX,BX
MOV CX,2
DOTSCH: PUSH CX
MOV SI,CHARLST[BX] ;取汉字地址
PUSH DS ;第1个参数,汉字点阵所段
PUSH SI ;第2个参数,汉字点阵所在地址
PUSH DI ;第3个参数,显示汉字列坐标X
PUSH DX ;第4个参数,显示汉字行坐标Y
CALL SHOWCHAR ;调用显示点阵汉字子程序
ADD DI,20
INC BX
INC BX
POP CX
LOOP DOTSCH
LEA DX,MSG0 ;显示信息(可能没用,因为是在图形模式)
MOV AH,9
INT 21H
MOV AH,0 ;按任意键继续,即返回文本模式
INT 16H
MOV AX,3 ;返回文本模式(同时有清屏效果)
INT 10H
MOV AH,4CH
INT 21H ;***程序结束***
CODE ENDS
;代码段结束
END START ;汇编结束