《微机原理与接口技术课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
》
实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
实验名称:在屏幕上显示一个开动的小汽车
姓名: 学 号:
专业: 实验室:
实验时间:2011年11月22日
报告时间:2011年12月13日
评定成绩: 审阅教师:
一.实验目的
1.掌握汇编语言程序指令编辑、宏汇编、连接、运行基本概念。
2.熟练掌握debug调试程序的常用命令和窗口功能。
3.通过所学的编程知识实现简单的动画显示过程。
4.综合运用多学知识发现、提出、分析和解决问题,锻炼实践能力。
5.最终结果为:在屏幕上显示一个开动的小汽车
二.实验内容
1.在屏幕上显示图形
2.延迟一个时间周期,这样图形更清晰。
3.清除图形、改变图形的行列坐标。
4.在屏幕上显示出动画的效果。
5.返回第一步,重复上述过程。
三.程序
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
图
备注:(具体程序流程见下页)
Y N
五.结论
程序运行后发现小车移动速度过快,导致观察的不清晰,再次调出程序时对其进行了延时的程序时间参数的修改,反复调试运行才完成的设计的要求,在许多调试程序的细节中容易出错,必定少不了认证二字。一次不成功的调试并说明不了什么,重要的是从失败中寻找成功的途径和方法。
运行结果见下图:
六.收获
通过对汇编语言的学习,学到了很多的调试知识,对DEBUG有了一定的认识,通过实践也加深了对理论知识的理解,在这次程序设计中也借鉴了很多的子程序,虽然这些子程序的设计是固定的,但是我能比较熟练的直接调用,也方面了我的设计,我最大的收获就是在这次课程设计中,真正的体会到了个人的能力是有限的,合作的重要性,遇到棘手的问题总是大家一起讨论,把问题解决,直到程序能够正常运行。值此我不禁加深了课本的知识,同时也增强了自己动手、动脑的能力,我觉得这很新奇,对此我也很有兴趣去研究它。毕竟是没有受过专业的训练,对程序的
流程图
破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word
的画法还是有所欠缺,对种种步骤还不是很了解,这一点还需反复揣摩。我也懂的逻辑推理对程序设计的重要性,找到简单、合适的高效率方法可以节约程序运行的时间,从而提高程序的运行效率。
七.程序清单
DATA SEGMENT
CAR DB 7
DB 52H,7,0,0
DB 0B1H,7,0,1
DB 0DBH,7,0,1
DB 0DBH,7,0,1
DB 4FH,7,1,0
DB 4FH,7,0,-3
DB 2,7,-2,1
CHAR_CNT DW ?
POINTER DW ?
LINE_ON DB ?
COL_ON DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DATA ;初始化DS
MOV DS,AX
MOV AH,0 ;设置300×200黑白图形方式
MOV AL,0
INT 10H
MOV AH,0BH ;设置背景颜色
MOV BH,0
MOV BL,2
INT 10H
MOV AH,0BH ;设置黑白调板
MOV BH,01
MOV BL,00
INT 10H
CALL CLEAR_SCREEN ;清屏
LEA DI,CAR ;DI指向字符图形
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
MOV DH,5 ;从第5行5列位置开始
MOV DL,5 ;显示汽车
CALL MOVE_SHAPE
RET
MAIN ENDP
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
PUSH AX ;保护寄存器
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AH,0FH ;取当前显示方式
INT 10H
SUB CH,CH ;清除计数器CX的高字节
MOV CL,[DI] ;CL放循环次数
INC DI ;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
ADD DI,4 ;DI指向下一个字符
LOOP PLOT_NEXT
CALL DLY_QRTR ; 调用延时子程序
CALL ERASE ; 调用擦除子程序
JMP SHORT PLOT_NEXT
MOVE_SHAPE ENDP
ERASE PROC NEAR
MOV CX,CHAR_CNT
MOV DI,POINTER
MOV DH,LINE_ON
MOV DL,COL_ON
ERASE_NEXT:
ADD DH,[DI+2] ;改变行列指针
ADD DL,[DI+3]
MOV AH,2 ;移动光标位置
INT 10H
MOV AL,[DI]
MOV BL,0
PUSH CX
MOV CX,1
MOV AH,9 ;显示字符
INT 10H
POP CX
ADD DI,4 ;DI指向下一个字符
LOOP ERASE_NEXT
MOV CX,CHAR_CNT
MOV DI,POINTER
MOV DH,LINE_ON
INC COL_ON
MOV DL,COL_ON
RET
ERASE ENDP
DLY_QRTR PROC NEAR ;延时子程序
PUSH CX
PUSH DX
MOV DX,999
D11: MOV CX,999
D12: LOOP D12
DEC DX
JNZ D11
POP DX ;恢复寄存器
POP CX
RET ;返回主程序
DLY_QRTR ENDP
CODE ENDS
END MAIN ;程序结束