光条式菜单程序设计说明书.docx
《光条式菜单程序设计说明书.docx》由会员分享,可在线阅读,更多相关《光条式菜单程序设计说明书.docx(7页珍藏版)》请在冰豆网上搜索。
![光条式菜单程序设计说明书.docx](https://file1.bdocx.com/fileroot1/2023-1/29/d3f29a95-15da-4a4f-8b04-a7a8d761b92e/d3f29a95-15da-4a4f-8b04-a7a8d761b92e1.gif)
光条式菜单程序设计说明书
*******************
实践教学
*******************
****************
2010年春季学期
微型计算机原理课程设计
题目:
光条式菜单程序设计
专业班级:
****************
姓名:
***********
学号:
************
指导教师:
***********
成绩:
_______________
目录
摘要……………………………………….…….……………..1
前言…………………………………………….….…………..2
正文……………………………………………………………3
3.1设计目的...………………………………..…………....3
3.2设计要求…………………………………………….…..3
3.3流程图……………………………………….…………..4
3.4源程序…………………………………………..…..…..4
设计总结………………………………………..……………..7
致谢……………………………………………..……………..8
摘要
本文是由汇编语言编写成的程序“光条式菜单程序”。
程序菜单边框可以自定义大小、颜色以及位置,本设计配有流程图,系统初始化和功能程序清单,是一个比较完整的程序设计。
关键词:
汇编语言、程序设计
前言
本课程设计主要学习的是计算机的组成逻辑,要具体到寄存器的层次,编程序要面对寄存器编程,这就是汇编语言编程。
在如此深入的层面上理解微机的工作原理,不单纯是为了知识,而是很多应用建立在这个基础上,只有掌握了危机的工作原理、汇编语言编程技术及危机的借口技术才能充分利用计算机的潜力。
然而,后PC时代的计算机已经发展到了一个前所未有的夹断。
新机型、新技术、新应用层出不穷,日新月异。
因此,微机原理与接口技术课程设计的教学内容迅速发展的形式是十分困难的。
国家教委对微机课程教学的基本要求中指出,课程的任务是使学生从理论和和时间上掌握危机的基本组成、工作原理、接口技术及应用,建立微机系统的整体概念,使学生具有应用微机系统进行软硬件开发的初步能力。
正文
1设计目的
(1) 掌握8086cpu微机系统的存储子系统设计
(2) 掌握8086cpu微机系统的中断控制子系统的设计
(3) 掌握8086cpu微机系统的I/O系统的设计
(4) 掌握8086cpu微机系统的初始化汇编编程和具体项目功能的软件汇编语言代码编写
(5) 培养学生理论与实践相结合以及实践创新的能力
2设计要求
(1) 每四个同学组成一个小组,选一位组长,负责与教师联系;每一组选择一个题目,完成系统的软硬件部分设计。
(2) 自学、查找所选择I/O接口芯片和内存芯片的相关的资料。
使用微机原理知识实现能完成相应功能的硬件系统。
(3) 要求写出系统(包括各个子系统)的设计方案及论证,画出系统原理图(硬件连线图)以及系统工作流程。
(4) 画出程序流程、编写系统初始化程序和功能程序清单。
3流程图
4源程序
;FILENAME:
MENU.ASM
;内容:
光条式程序菜单设计
DISPMACROX,LENGEH,COLOR;定位显示彩色字符串
MOVAX,1301H
MOVBX,COLOR
MOVCX,LENGTH
MOVDH,YY
MOVDL,X
MOVBP,ADDR
INT10H
ENDM
;----------------------------------------------------------------
DATASEGMENT
LODB’MENU’
L1DB’==================’
L2DB’|EXAMPLE1|’
L3DB’|EXAMPLE2|’
L4DB’|EXAMPLE3|’
L5DB’|RETURN|’
L6DB’==================’
LLEQU$-L6;LL为边框长度
XXEQU(80-LL)/2;;XX为带显示串字符列值
YYDB?
;存放带显示串的行值
NNDW1;记录色带的位置
TABDW?
,L2,L3,L4,L5;存放菜单项偏移地址
ADDRDW?
;存放待显示串偏移地址
DATAENDS
;-------------------------------------------------------------------------------------
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
BEG:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,3
INT10H;清屏
MOVYY,8菜单起始行值→YY单元
MOVADDR,OFFSETLO;LO偏移地址→ADDR单元
LAST2:
DISPXX,LL,OFH;显示一行菜单
ADDADDR,LL;下一串偏移地址→ADDR单元
INCYY;下一菜单项行值→YY单元
CMPYY,15
JLLAST2
MOVNN,1
CALLCOMPUTE
DISPXX+3,LL-6,51H;令色带覆盖第一菜单项
SCAN:
MOVAH,1
INT16H;有键入?
JZSCAN;否,转等待输入
MOVAH,0
INT16H;读键盘缓冲区
CMPAH,80
JEDOWN;是向下箭头键,转下移处理
CMPAH,72
JEUP;是向上箭头键,转上移处理
CMPAL,ODH
JEEXIT;是回车,转退出
JMPSCAN;非法键,转等待输入
DOWN:
CMPNN,4
JESCAN
CALLCOMPUTE
DISPXX+3,LL-6,OFH;令当前色带消失
INCNN;(NN)+1→NN单元
CALLCOMPUTE
DISPXX+3,LL-6,51H;色带下移1项
JESCAN
CALLCOMPUTE
DISPXX+3,LL-6,OFH;令当前色带消失
DECNN;(NN)-1→NN单元
CALLCOMPUTE
DISPXX+3,LL-6,51H;色带上移1项
JMPSCAN
EXIT:
MOVAL.BYTEPTRNN;携带返回码
MOVAH,4CH
INT21H;返回批处理
;--------------------------------------------------------------------------------------------------
COMPUTERPROC;计算子程序
MOVDI,NN
ADDDI,DI
MOVAX,TAB[DI]
ADDAX,3
MOVADR,AX;待显示串偏移地址→ADDR单元
MOVAL,BYTEPTRNN
ADDAL,9
MOVYY,AL
RET
COMPUTEENDP
CODEENDS
ENDBEG
设计总结
这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。
但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。
因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
七致谢
在这次课程设计的撰写过程中,我得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学