微机原理实习 光条式程序菜单程序界面设计Word文档下载推荐.docx
《微机原理实习 光条式程序菜单程序界面设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理实习 光条式程序菜单程序界面设计Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
![微机原理实习 光条式程序菜单程序界面设计Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/7/346e2f8b-5d72-48d5-9fd4-1b37251336d0/346e2f8b-5d72-48d5-9fd4-1b37251336d01.gif)
1.2实习要求………………………………………………………………………………2
1.3设计所需设备……………………………………………………………………………2
第二章软件系统介绍………………………………………………………………2
2.1中断技术(或其它相关技术)……………………………………………………2
2.1.1介绍中断的概念中断技术……………………………………………………2
2.1.2DOS及BIOS中断……………………………………………………………………2
2.2汇编语言及汇编工具简介……………………………………………………………2
第三章设计分析…………………………………………………………………………………3
3.1软件设计思路……………………………………………………………………………3
3.2软件各模块内容………………………………………………………………………3
3.2.1界面设计……………………………………………………………………………3
3.2.2菜单项选择…………………………………………………………………………3
3.2.3菜单项程序的组织与调用…………………………………………………………3
3.2.4常用的光标控制键…………………………………………………………………3
3.3程序流程图设计…………………………………………………………………………4
第四章系统实现…………………………………………………………………………………5
4.1程序原代码清单及详细注释……………………………………………………………6
4.2实验结果…………………………………………………………………………………7
第五章总结
5.1设计总结…………………………………………………………………………………8
前言
本课程设计主要学习的是计算机的组成逻辑,要具体到寄存器的层次,编程序要面对寄存器编程,这就是汇编语言编程。
在如此深入的层面上理解微机的工作原理,不单纯是为了知识,而是很多应用建立在这个基础上,只有掌握了危机的工作原理、汇编语言编程技术及危机的借口技术才能充分利用计算机的潜力。
然而,后PC时代的计算机已经发展到了一个前所未有的夹断。
新机型、新技术、新应用层出不穷,日新月异。
因此,微机原理与接口技术课程设计的教学内容迅速发展的形式是十分困难的。
国家教委对微机课程教学的基本要求中指出,课程的任务是使学生从理论和和时间上掌握危机的基本组成、工作原理、接口技术及应用,建立微机系统的整体概念,使学生具有应用微机系统进行软硬件开发的初步能力。
第一章绪论
一、实验目的
1.理解掌握定时/计数器和中断的使用方法。
2.掌握微机常用的输入输出方式及接口技术。
3.掌握一定的汇编语言知识,培养自己的动手操作能力。
4.学习程序设计的基本思路和方法。
5.设计光条式程序菜单,了解菜单的制作方法
二、实习要求
1.用箭头键改变选项的选择,用色带光条标明所选项,并可用确认键调用按序号定义的子程序。
三、设计所需设备:
PC机
第二章软件系统介绍
一、中断技术(或其它相关技术)
(一)介绍中断的概念中断技术
在微机中,当CPU在执行过程中时,由于随机的事件(包括CPU内部的和CPU外部的事件)引起的CPU暂时停止正在执行的程序,而转去执行一个用于处理该事件的程序—称为中断式服务程序(或称中断处理程序),处理完后又返回被终止的程序断点处继续执行,这一过程成为中段
(二)DOS及BIOS中断
通过调用DOS系统的8号功能实现控制字符的输入,通过调用延时程序实现十分之一秒的定时,通过调用DOS系统的2号功能实现光标定位,调用DOS系统的2号功能实现字符的输出,通过调用DOS系统的9号功能实现字符串的输出。
二、汇编语言及汇编工具简介
汇编语言(AssemblyLanguage)是面向机器的程序设计语言。
在汇编语合中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。
于是汇编语言亦称为符号语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。
汇编程序把汇编语言翻译成机器语言的过程称为汇编。
EMU8086是学习汇编必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。
Emu8086 同主流汇编程序相比,语法简单得多,但是它能生成兼容8086的机器语言。
可以直接对通用寄存器,段寄存器,直接进行汇编编址操作,而且便于直接生成exe文件进行操作。
第三章设计分析
一、软件设计思路
一个多功能的软件常以菜单作为程序界面,用户可以通过菜单项直观地选择各项功能。
菜单分为分页式和下拉式(弹出式)两种,这里只设计没有分页功能的单页式菜单。
在设计菜单程序时应考虑4项内容:
界面设计、菜单项选择、菜单程序的组织与调用和常用的光标控制键。
二、软件各模块内容
(一)界面设计
在分页式菜单程序中,如果菜单项比较多,可以用PaDn键和PgUp键分页显示。
在下拉式菜单程序中,通常采用分级分类的办法,即主菜单、一级子菜单、二级子菜单等。
当选中一个主菜单项时,就“弹出”它属下的一级子菜单,在选中了一个子菜单项之后,又弹出它属下的二级子菜单,依次类推,每一个菜单项都有一个可执行程序与之对应。
(二)菜单项选择
最简单的方法是键入菜单项序号,程序根据序号转入相应的菜单项程序段。
较常见的方法是利用“色带”选择菜单项。
“色带”是颜色鲜明的条形光带,它可以覆盖一个菜单项,用户利用“↑↓←→”键移动色带的位置,然后按下回车键,被色带覆盖的那个菜单项就被选中。
使用色带选择,界面美观,操作简便,程序设计也不太复杂,是较为理想的方式。
(三)菜单项程序的组织与调用
如果菜单项比较少,而且菜单项程序不太复杂,不一定要为每一个菜单项设计一个独立的程序,此时界面显示、菜单项选择和完成菜单项功能的程序段可以包含在一个程序中。
菜单项被选中后,可以使用JMP或CALL指令,调用相应的程序段。
如果菜单项比较多,菜单项程序又比较复杂,就应当为每一个菜单项设计一个独立的菜单项程序,此时菜单项程序的组织与调用就十分重要。
(四)常用的光标控制键
常用的光标控制键PgDn、PgUp、↑↓←→,通过调用INT16H的0号子功能可以在AH寄存器中返回他们的扩展码。
三、程序流程图设计
第四章系统实现
一、程序原代码清单及详细注释
;
FILENAME:
MENU.ASM
DISPMACROX,LENGTH,COLOR;
定位显示彩色字符串
MOVAX,1300H
MOVBX,COLOR;
属性字→BX
MOVCX,LENGTH;
串长度→CX
MOVDH,YY;
行值→DH
MOVDL,X;
列值→DL
MOVBP,ADDR;
待显传偏移地址→BP
INT10H
ENDM
------------------------------------------------
DATASEGMENT
L0DB'
MENU'
L1DB'
======================='
L2DB'
\EXAMPLE_1\'
L3DB'
\EXAMPLE_2\'
L4DB'
\EXAMPLE_3\'
L5DB'
\RETURN\'
L6DB'
LLEQU$-L6
XXEQU(80-LL)/2
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,OFFSETL0;
L0偏移地址→ADDR单元
LAST2:
DISPXX,LL,0FH;
显示一行菜单
ADDADDR,LL;
下一串偏移地址→ADDR单元
INCYY;
下一菜单项行值→YY单元
CMPYY,15
JLLAST2
LAST1:
CALLCOMPUTE
DISPXX+3,LL-6,0FH
MOVNN,1
CALLCOMPUTE
DISPXX+3,LL-6,51H;
令色带覆盖第1菜单项
SCAN:
MOVAH,1
INT16H;
有键入?
JZSCAN;
否,转等待输入
MOVAH,0
读键盘缓冲区
CMPAH,80
JEDOWN;
是“↓”键,转下移处理
CMPAH,72
JEUP;
是“↑”键,转上移处理
CMPAL,0DH
JEEXIT;
是回车,转退出
JMPSCAN;
非法键,转等待输入
DOWN:
CMPNN,4
JELAST1
DISPXX+3,LL-6,0FH;
令当前色带消失
INCNN;
(NN)+1→NN单元
色带上移1项
JMPSCAN
UP:
CMPNN,1
JELAST3
DECNN
DISPXX+3,LL-6,51H
EXIT:
MOVAL,BYTEPTRNN;
携带返回码
MOVAH,4CH
INT21H;
返回批处理
-------------------------------------------------
COMPUTEPROC;
计算子程序
MOVDI,NN
ADDDI,DI
MOVAX,TAB[DI]
ADDAX,3
MOVADDR,AX;
待显串偏移地址→ADDR单元
MOVAL,BYTEPTRNN
ADDAL,9
MOVYY,AL
RET
COMPUTEENDP
LAST3:
MOVNN,4
CALLSCAN
CODEENDS
ENDBEG
二、实验结果
点击运行后,出现运行的结果如下:
第五章设计总结
本次课题设计,使我们对emu8086及编程有了更深层次的理解与体会,对于汇编语言的使用和编程更加深层的学习,收获颇丰。
当我们接到这个课题时,对于光条式程序菜单的设计是非常的陌生,于是我们小组3个成员开始了最初的讨论设计大概的思路,包括使用的中断技术、界面的设计、循环程序设计以及子程序设计的使用等,我们通过画流程图和基本步骤的设置,慢慢的我们的程序有了一个大致的轮廓,接着就是书写程序了,首先通过课本的已有知识开始了编程,可发现有些指令和中断的调用已经超出了课本,于是我们去图书馆借阅了很多关于汇编语言程序设计的书籍,拿回来进行研究,我们小组成员各自分工,一人研究一步,做到精益求精,保证自己编的程序没有错误,之后大家将编写的程序进行汇总,但是发现程序有错误,于是我们一条一条进行排查,认真讨论分析,最后终于发现了问题之处,进行了改正。
但是善于挑战的我们,又进行了一系列改正,使程序更加的完美,界面更加的优美。
经过本次的实习,使我们增加了更多的专业知识,并让我们将书本的知识与实际相结合起来,增强了我们逻辑思维,为今后学习和工作奠定了基础。