当前位置:首页 > 北交微机原理课设-动画程序设计(小鸟和小车) - 图文
MOV BH,7 INT 10H RET QING ENDP
DLY PROC NEAR ;延时子程序 PUSH CX PUSH DX MOV DX,10000 DL1: MOV CX,6801
DL2: LOOP DL2 DEC DX JNZ DL1 POP DX
POP CX RET DLY ENDP
QICHE PROC NEAR ;汽车子程序 MOV AH,0 MOV AL,02 INT 10H
CLEAR 0,0,24,79,7 ;清屏宏调用 LEA DI,CAR ;DI指向字符图形表
MOV DH,5 ;从第5行0列位置开始显示汽车 MOV DL,0 CALL MOVE RET QICHE ENDP MOVE PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH DI
MOV AH,0FH ;取当前显示方式
INT 10H MOV CH,0
MOV CL,[DI] ;CL放字符个数 INC DI ;DI指向字符图形表 MOV CHAR,CX MOV POINTER,DI MOV LINE,DH MOV COL,DL PLOT_NEXT:
ADD DH,[DI+2] ;改变行列坐标 ADD DL,[DI+3]
CMP DL,80 ;是否出屏 JB MOV_CRSR POP DI POP DX POP CX POP BX POP AX RET MOV_CRSR:
MOV AH,2 INT 10H
MOV AL,[DI] ;取字符值 MOV BL,[DI+1] ;取字符属性 MOV AH,09 ;显示字符 INT 10H
ADD DI,4 ;DI指向下一个字符 LOOP PLOT_NEXT CALL DLY CALL ERASE
JMP SHORT PLOT_NEXT MOVE ENDP ERASE PROC NEAR MOV CX,CHAR
MOV DI,POINTER MOV DH,LINE MOV DL,COL ERASE_NEXT:
ADD DH,[DI+2] ;修改光标的行坐标 ADD DL,[DI+3] ;修改光标的列坐标 MOV AH,2
INT 10H ;设置光标位置 MOV AL,[DI]
MOV BL,0 ;设置字符属性为0,为黑色 PUSH CX
MOV CX,1 ;设置字符显示次数为1 MOV AH,9 INT 10H POP CX
ADD DI,4 ;指向下一个要用来擦除的字符 LOOP ERASE_NEXT MOV CX,CHAR MOV DI,POINTER MOV DH,LINE INC COL MOV DL,COL RET ERASE ENDP CODE ENDS END START
五、实施结果
1、初始界面,如图5-2所示:
图5-1
2、输入1,小鸟从屏幕飞过界面,如图5-2所示:
图5-2
3、输入2,汽车按水平方向从屏幕上开过去界面,如图5-3所示:
共分享92篇相关文档