汇编语言课程设计小车动态图形设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳大学科技工程学院

机电学院计算机2班尚炎焱

课程设计说明书

设计题目:动态图形设计

一、课程设计目的

进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。

二、课程设计要求

1.要求编写并调试通过一个小型软件,实现对软件或硬件的操作。

2.遵循模块化、结构化的程序设计方法。

3.要求程序必须正确。

4.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。

5.要求程序结构合理,语句使用得当。

6.适当追求编程技巧和程序运行效率。

三、课程设计题目:

小车动态图形设计

四、课题分析

该题目看似复杂,其实不然。具体方式可以按以下步聚进行:

1、确定下车由哪些字符组成

2、在屏幕上显示一个小车,然后再擦除

3、改变一个列坐标,重复步聚2

4、写一个循环子程序,让小车从屏幕的左侧行驶到屏幕的右侧

5、用LOOP指令,改变行坐标,让小车从屏幕的上一端跳到屏幕的下一端,重复执行,显示一屏

6、然后再用LOOP指令,不断重复这一屏

五、流程图:

NO

YES :

NO YES

开始

有无按健 ENTER KEY?

ROW 递增几

行 小车从左边行驶到右边

是否行驶到右下角 终止

ROW,COLUMN 初始化

六、程序源代码

DISPLAY MACRO ROW_OFFSET,COLUMN_OFFSET,CHAR,ATTR MOV BH,0

ADD DH,ROW_OFFSET I;显示一个字符和属性

ADD DL,COLUMN_OFFSET

MOV AH,2H

INT 10H

MOV AL,CHAR

MOV BL,ATTRI

MOV CX,1

MOV AH,9H

INT 10H

ENDM

SETMODE MACRO MODE1 ;设置显示方式

MOV AH,0

MOV AL,MODE1

INT 10H

ENDM

DATA SEGMENT

STRING DB'Please press ENTER key to show my work',0DH,0AH DB'You can press any other keys to end , enter key or any ohter keys?$' CHAR_CNT LABEL WORD

DB 0,0,0DBH,7,0,1,0DBH,3

DB 0,1,0DBH,7,1,-2,4FH,2

DB 0,2,4FH,2,-2,0,2,12

ROW DB?

COLUMN DB?

MODE DB 1

ROAD_COLOR DB?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA ;主程序MOV DS,AX

SETMODE 0DH

LEA DX,STRING

MOV AH,9H

INT 21H

MOV AH,1H

INT 21H

CMP AL,0DH

JNE ESCAPE

SETMODE 0DH

MOV ROW,2

MOV COLUMN,0

MOV ROAD_COLOR,2

MOV CX,5

INWARD:

PUSH CX

CALL ROAD

CALL MOVE_SHAPE

ADD ROW,5

INC ROAD_COLOR

SETMODE 0DH ;重新设置相同的显示方式,相当于清屏POP CX

LOOP INWARD

MOV CX,2

LOOP OUTWARD

ESCAPE:

SETMODE 2

MOV AX,4C00H

INT 21H

DELAY PROC NEAR ;延时子程序

MOV DX,500H

DL1:

MOV CX,0

LOOP $

DEC DX

JNZ DL1

RET

DELAY ENDP

DRAW PROC NEAR ;显示或擦除小车MOV DH,ROW

MOV DL,COLUMN

MOV CX,CHAR_CNT

LEA DI,CAR+2

ONE:

CMP MODE,0

PUSH CX

JNE SKIP

DISPLAY [DI+0],[DI+1],[DI+2],0

JMP ABC

SKIP:

DISPLAY [DI+0],[DI+1],[DI+2],[DI+3]

ABC:

POP CX

ADD DI,4

LOOP ONE

RET

DRAW ENDP

MOVE_SHAPE PROC NEAR ;小车动态图形PLOT:

MOV MODE,1

CALL DRAW

MOV AH,1H

INT 16H

JNE ESCAPE ;检查缓冲区有无按键CALL DELAY

CMP COLUMN,36

JA EXIT

MOV MODE,0

CALL DRAW

INC COLUMN

JMP PLOT

EXIT:

MOV COLUMN,0

相关文档
最新文档