微机原理课程设计Word文件下载.docx
- 文档编号:21778904
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:16
- 大小:42.94KB
微机原理课程设计Word文件下载.docx
《微机原理课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
5、适当追求编程技巧和程序运行效率。
三、主要仪器设备及软件
PC机、MASM汇编软件、绘图软件及仿真等。
四、课程设计题目及要求
题目:
带显示界面的运算器
要求:
1.具有简单人机交互界面,易于操作;
2.能够实现基本的加、减、乘、除四则运算;
3.如输入数据时,出现错误,可以修改;
4.运算结果能正确显示。
五、课题分析及设计思路
本程序可执行整数之间的加减乘除四则运算,带小数点的数值之间的加减运算也可运行,并保留有小数点的后4位数。
并且程序能判别输入的参与运算的数据是否为数值。
在第一次输入数据时,程序没有进入子程序不能判别出入的是字符还是数字,当输入数字后,程序进入子程序,再进行非数值录入时程序不显示,自动做错误处理,不影响程序的运行。
程序还具有容错功能,当输入的数据错误时,可以使用退格键将错误的数据清楚,可以是整个数据,也可是数据的某一位数字,均不影响程序。
当操作符输入错误时也可以及时修改,不影响结果的正确性。
六、程序主要流程图
;
------数据段-------------
DATASEGMENT
TAB1DB13,10,"
HUIBIANYUNSUANQISHEJI$"
TAB2DB13,10,"
1234$"
TAB3DB13,10,"
5678$"
TAB4DB13,10,"
90+-$"
TAB5DB13,10,"
*/()$"
TAB6DB13,10,"
PLEASEINPUTAFORMULA:
$"
TAB7DB13,10,"
$"
NUM1DW100DUP(?
)
NUM3DW100DUP(?
NUM4DW100DUP(?
C0DW0
C1DW0
C2DW0
SUM1DW0
SUM2DW0
OLTDW0
RESULTDW0
TABLEDW10000,1000,100,10,1;
定义输出时要用到的除数
WRONGDB13,10,"
WRONGINPUT!
;
OVERDB13,10,"
NOTOPERATIONALCHARACTER!
DATAENDS
----------------------------
------代码段----------------
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
------主程序---------------
START:
MOVAX,DATA
MOVDS,AX
CALLDISPMENU;
显示汇编计算器菜单
STARTA:
MOVBX,-1
MOVSI,0
MOVDI,30
MOVCX,0
MOVC0,0
MOVC1,0
MOVC2,0;
初始化各个变量
CALLINPUT
CALLYUNSUAN
CALLOUTPUT
EXIT:
MOVAH,4CH
INT21H
------计算器显示菜单子程序--------
DISPMENUPROCNEAR
MOVDX,OFFSETTAB1
MOVAH,09H
MOVDX,OFFSETTAB2
MOVDX,OFFSETTAB3
MOVDX,OFFSETTAB4
MOVDX,OFFSETTAB5
MOVDX,OFFSETTAB6
MOVDX,OFFSETTAB7
RET
DISPMENUENDP
---------------------------
输入字符及转换程序模块
----输入并转换子程序,结果式存入NUM1-------
INPUTPROCNEAR
STARTW:
MOVAH,1
MOVAH,0
CMPAL,1BH;
'
ESC'
JZEXIT
CMPAL,2AH;
*'
JZMARK
CMPAL,2FH;
/'
CMPAL,2BH;
+'
CMPAL,2DH;
-'
CMPAL,29H;
)'
CMPAL,28H;
('
CMPAL,3DH;
='
JZEQUAL
SUBAL,30H
CMPAL,0
JLERROR
CMPAL,9
JAERROR
JMPARITH
ERROR:
显示输入错误
LEADX,WRONG
MOVAH,9
JMPSTARTA
ARITH:
CMPC1,0
JETTOM
MANA:
数值的补码转换
MOVC0,AX
ADDC1,1
MOVAX,BX
MOVCX,10
MULCX
ADDAX,C0
MOVBX,AX
JMPSTARTW
TTOM:
MOVBX,0
JMPMANA
MARK:
CMPBX,-1
JEGGON
MOVNUM1[SI],BX
ADDSI,2
MOVNUM1[SI],AX
GGON:
EQUAL:
输入是等号时,调到主程序执行运算
JELLOP
JMPENDW
LLOP:
ENDW:
INPUTENDP
---------------------------
-----运算的子程序----------
使括号内的运算先进行,别用算出的结果代替对应括号及括号内的运算的子程序
YUNSUANPROCNEAR
AAAA:
MOVBP,0
MOVDI,0
MOVSUM2,0
BBBB:
MOVAX,NUM1[SI]
CMPAX,29H;
)先查找最左边的右括号
JERSEE
CMPAX,3DH;
=
JELASTL
JMPBBBB
RSEE:
SUBSI,2
CMPAX,28H;
(
JEMOTT
JMPRSEE
MOTT:
MOVSUM2,SI
KKTY:
MOVNUM3[DI],AX;
把括号里的计算式存入NUM3
)
JERCOUNT
ADDDI,2
JMPKKTY
RCOUNT:
MOVSUM1,SI
CALLCALC
MOVDI,SUM2
MOVAX,RESULT
MOVNUM1[DI],AX
MOVSI,SUM2
CCOO:
JMPCCOO
LASTL:
UUCC:
MOVNUM3[SI],AX
JEENDL
JMPUUCC
ENDL:
YUNSUANENDP
---------------------------------
------计算混合运算的子程序(不含括号的)------------------
CALCPROCNEAR
MOVAX,NUM3
MOVNUM4,AX
MOVDI,2
MOVC0,SI
MOVSI,2
INT1:
MOVBX,NUM3[SI]
CMPBL,2AH;
'
JEMULL
CMPBL,2FH;
JEDIVV
CMPBL,3DH;
JECHUBU
CMPBL,29H;
CMPBL,2BH;
JEPOTT
CMPBL,2DH;
INT2:
MOVNUM4[DI],BX
MOVAX,NUM3[SI]
MOVNUM4[DI],AX
JMPINT1
POTT:
SUBDI,2
JMPINT2
MULL:
MULBX
DIVV:
DIVBX
ADDD:
MOVBX,NUM4[DI]
ADDAX,BX
JMPINT3
SUBB:
SUBAX,BX
CHUBU:
MOVAX,NUM4
INT3:
CMPBX,2BH;
JEADDD
CMPBX,2DH;
JESUBB
MOVRESULT,AX
CALCENDP
-----输出最终结果的子程序---------------
OUTPUTPROCNEAR
LEASI,TABLE
ADDC0,8
MOVCX,5
MOVOLT,0
OUTT:
XORDX,DX;
异或清零
DIVWORDPTR[SI];
求万位,千位,百位,十位,个位;
商存在了AX中,余数存在了DX中
ORAL,30H;
转换成ASCLL码
MOVBX,DX;
将DX的值存入BX中,因为下面输出AX值时会改变DX值
CMPSI,C0
JEOUT2
CMPOLT,0
JNEOUT2
CMPAX,30H
JEOUT1
JNEAADD
OUT2:
MOVDX,AX;
输出商值
MOVAH,02
OUT1:
MOVAX,BX;
将余数赋还给AX因为除数十16位,所以余数在DX中
ADDSI,2;
BP加二,用以调用下一个被除数
LOOPOUTT
CALLENTER
JMPSTARTA;
跳回程序开始
AADD:
INCOLT
JMPOUT2
OUTPUTENDP
---------回车换行的子程序---------------------
ENTERPROCNEAR
MOVDL,0DH;
回车
MOVAH,02H
MOVDL,0AH;
换行
ENTERENDP
CODEENDS
ENDSTART
八、实验结果截图
九、心得体会
通过本次带显示界面的运算器的设计,使我们能够灵活运用已学知识并应用于实践,同时认识到团队协作所需要的各种能力,分工、沟通、组织、合作等。
这次设计不仅检验了我们所学习的知识,也培养了我们如何去把握一件事情,如何去做一件事情,又如何完成一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。
学会了合作,学会了宽容,学会了理解,也学会了为人处事的态度。
体会了学以致用、突出自己劳动成果的喜悦心情。
在编程过程中应该注意一些细节问题,例如中英文符号的区别,往往一些错误都是由于粗心而导致的。
还有在此次课程设计过程中,学习了许多汇编语言的相关知识,再通过参考文献与利用网络,完成了此次课程设计。
另外通过课程设计,加深了对课堂抽象概念的理解,巩固了课堂上所学的理论知识,并能很好地理解与掌握汇编语言的基本概念、基本原理、基本分析方法。
同时掌握编程方法和解决实际问题的技巧。
通过此次课程设计,我们收获颇丰。
无论是查找资料还是编写程序、调试程序,都在其中学到了不少东西,能够综合运用本专业所学课程的理论和生产实际知识进行一次系统设计从而培养和提高学生独立工作能力,程序编写能力,独立思考的能力也有了提高。
通过本次课程设计,我们也发现了我们在知识上存在许多的漏洞,还有很多知识掌握的不够牢固。
在课程设计的过程中,通过看书和上网等途径进行知识的漏洞修补。
由于我们的知识还不够完善,本次实验的设计还存在很多不完善的地方,需要老师给予指正,同时我们也将继续加强有关知识的学习。
参考文献
【1】沉关明,温冬婵,IBM-PC汇编语言程序设计,清华大学出版社,2011年11月
【2】周国祥,微机原理与接口技术,中国科学技术大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计