实验五综合程序设计(二)编程.doc
文本预览下载声明
DATA SEGMENT 数据段 ASCII码值、字符属性、相对位移量(行
、列)
CAR DB 7
DB 0DBH,7,0,0 实心方块:ASCII码为0DBH
DB 0DBH,7,0,1 实心方块:ASCII码为0DBH
DB 0B1H,70H,0,1 阴影符:ASCII码为0B1H
DB 52H,70H,0,1 字母R(车头):ASCII码为52H
DB 4FH,7,1,0 字母O(车轮):ASCII码为4FH
DB 4FH,7,0,-3 字母O(车轮):ASCII码为4FH
DB 2,7,-2,2 笑脸符:ASCII码为01H或02H
CHAR_CNT DW ?
POINTER DW ?
LINE_ON DB ?
COL_ON DB ?
DATA ENDS
字符属性:
7:闪烁 6:背景 红 5:背景 绿 4:背景 蓝
3:高亮 2:前景 红 1:前景 绿 0:前景 蓝
相对位移量是说的相对前面的图形,向右X增大,向下Y增大。画图可得。
STACK1 SEGMENT PARA STACK 堆栈段
DW 40H DUP(0)
STACK1 ENDS
CODE SEGMENT 代码段
ASSUME DS:DATA,CS:CODE,SS:STACK1
MAIN PROC FAR 模拟汽车开动程序的参考主程序
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
CALL CLEAR_SCREEN
LEA DI,CAR
MOV DH,10
MOV DL,10
CALL MOVE_SHAPE
RET
CLEAR_SCREEN PROC NEAR 让“汽车”在屏幕上开动-----清屏
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,6
MOV AL,0
MOV CH,0
MOV CL,0
MOV DH,24
MOV DL,79
MOV BH,7
INT 10H
POP DX
POP CX
POP BX
POP AX
RET
CLEAR_SCREEN ENDP
MOVE_SHAPE PROC NEAR 在屏幕上显示出“汽车”,并将“汽车”图形利
用BIOS中断调用输出在显示器上
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AH,0FH
INT 10H
SUB CH,CH
MOV CL,[DI]
INC DI
MOV CHAR_CNT,CX
MOV POINTER,DI
MOV LINE_ON,DH
MOV COL_ON,DL
PLOT_NEXT:ADD DH,[DI+2]
ADD DL,[DI+3]
CMP DL,80
JB MOV_CRSR
CALL ERASE
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]
PUSH CX
MOV CX,1
MOV AH,09
INT 10H
POP CX
A
显示全部