2022年汇编语言简单计算器程序课程方案报告 .pdf

上传人:H****o 文档编号:25682742 上传时间:2022-07-13 格式:PDF 页数:23 大小:346.97KB
返回 下载 相关 举报
2022年汇编语言简单计算器程序课程方案报告 .pdf_第1页
第1页 / 共23页
2022年汇编语言简单计算器程序课程方案报告 .pdf_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《2022年汇编语言简单计算器程序课程方案报告 .pdf》由会员分享,可在线阅读,更多相关《2022年汇编语言简单计算器程序课程方案报告 .pdf(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、个人资料整理仅限学习使用课 程 设 计 说 明 书题目: 简单计算器院系:专业班级:学号:学生姓名:指导教师:2018 年 12 月 31 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 23 页个人资料整理仅限学习使用安徽理工大学课程设计 论文)任务书计算机科学与工程学院硬件教研室学 号学生姓名专业 设计技术参数1 熟悉汇编指令、宏汇编语言的编程方法2 BIOS 中断调用、系统功能中断调用方法3 磁盘文件、及文件内容操作设计要求题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理而设

2、计的,是对所学课程知识较为系统的应用。由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善程序。另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。工作量1. 完成所选题目的软件设计。2.课程设计说明书1000 字不包括程序源代码)左右。工作计划第 1 次熟悉软件环境。第2 次绘制程序流程图。第3 次用编写程序。第 4 次用调试运行程序。第5 次编写课程设计说明书精选学习资料 - - - - - - - - - 名师归纳总

3、结 - - - - - - -第 2 页,共 23 页个人资料整理仅限学习使用参考资料1 李敬兆等编 .汇编语言程序设计.合肥:中国科学技术大学出版社,2008.92李敬兆等编 .汇编语言程序设计实验教程及习题解答.合肥:中国科学技术大学出版社, 2008.93 王爽等编 .汇编语言 .北京:清华大学出版社,2003.54曹加恒等编 .新一代汇编语言课程设计.北京:高等教育出版社,2003.65 杨路明等编 .汇编语言程序设计 .长沙:中南大学出版社,2005.86 詹仕华等编 .汇编语言程序设计 .北京:中国电力出版社,2008.27詹仕华等编 .汇编语言程序设计习题解答及课程设计、设计辅导

4、.北京:中国电力出版社,2008.28宋彩莉等编 .汇编语言程序设计学习指导.西安:西安交通大学出版社, 2008.2指导教师签字教研室主任签字2018年 12 月 17 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 23 页个人资料整理仅限学习使用安徽理工大学课程设计 MOV DL,B INT 10H 。BIOS 调用ENDM 。- DISPMSG MACRO MESSAGE LEA DX,MESSAGE 。传递 MESSAGE 的偏移地址MOV AH,9 。显示字符串INT 21H 。DOS 调用ENDM 。- CLEAR MA

5、CRO COLOR 。清屏MOV AH,6 。屏幕初始化MOV AL,0 。页号MOV CH,0 。设置左上角的坐标为 (0,0 MOV CL,0 MOV DL,100 。设置右上角的坐标为 100,100)MOV DH,100 MOV BH,COLOR 。卷入行属性INT 10H 。BIOS 调用ENDM .MODEL SMALL .STACK .DATA 。数据段定义MSG0 DB * * * * * * * * * * * * * * * * * * * *,0DH,0AH 。,0dh,0ah,0dh,0ah DB * *,0DH,0AH 。db * *,0dh,0ah 精选学习资料 -

6、 - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 23 页个人资料整理仅限学习使用。db * *,0dh,0ah DB * -caculater- *,0DH,0AH 。,0dh,0ah,0dh,0ah DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * NUM1: DB *,0DH,0AH 。,0dh,0ah,0dh,0ah,0dh DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH DB * NUM2: DB *,0DH,0AH 。,0dh,0ah,0dh,0ah,0dh

7、 DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH DB * RESULT: DB *,0DH,0AH,0DH 。,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * *,0DH,0AH DB * * * * * * * * * * * * * * * * * * * *,$ MSG1 DB choose +,-,*,/,$ MSG2 DB you choose wrong,$,0AH,0DH MSG3 D

8、B Press ESC to Exit!,0DH,0AH,$ MSG4 DB Press any key to continue!,0DH,0AH,$ MSG5 DB -,$ MSG6 DB .,$ MSG7 DB error input!,$ MSG8 DB data2 is wrong!,$ NUM1 DW ? NUM2 DW ? 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 23 页个人资料整理仅限学习使用子模块:完成对数据的进一步加工处理,转换格式并得出结果。首先根据输入调用对应的“+”、“ -”、“ *”、“ /”四大函数

9、模块,这是本程序的核心模块,其他部分的一些小模块都是为这几大模块服务的,大致的流程图如下图3-2: N Y图 3-2 子模块流程图代码如下:BEGIN PROC NEAR BACK: CLEAR 1EH CURS 2,20 。设置光标为 2.20)DISPMSG MSG0 。显示用户界面CURS 8,41 。设置光标为 8,41),第一行MOV BX,0 MOV CX,2 NEWCHAR1: MOV AH,1 。键盘输入并回显INT 21H 。DOS 调用接收用户的运算符号判断合法性返回主界面调用对应模块运算数据,得出结果精选学习资料 - - - - - - - - - 名师归纳总结 - -

10、- - - - -第 15 页,共 23 页个人资料整理仅限学习使用CMP AL,30H 。检查输入的字符是不是数字JAE J1 。如果不是,则转移至J1 JMP D2 。是,转移到 D2执行J1: CMP AL,39H 。 与 9 的 ASCII 比较JBE J2 。如果输入的字符是0-9,则转移至 J2 JMP D2 。如果不是数字,则转移至D2 J2: SUB AL,30H CBW 。AL 的内容符号扩展到AH XCHG AX,BX MOV DI,10 MUL DI XCHG AX,BX ADD BX,AX LOOP NEWCHAR1 MOV NUM1,BX CURS 11,41 。设置

11、光标位为 11,40),第二行MOV BX,0 MOV CX,2 NEWCHAR2: MOV AH,1 。键盘输入并回显INT 21H 。DOS 调用CMP AL,30H 。与 0 的 ASCII 码比较JAE J3 。如果输入数字大于等于0 则跳转至 J3 JMP D2 J3: CMP AL,39H 。与 9比较JBE J4 。如果小于或等于9则跳转JMP D2 。如果输入不是数字则跳转J4: SUB AL,30H 。如果输入不是 0-9,则转化成相应的字符CBW 。将 AL 符号扩展到 AH XCHG AX,BX MOV DI,10 MUL DI XCHG AX,BX ADD BX,AX

12、精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 23 页个人资料整理仅限学习使用LOOP NEWCHAR2 MOV NUM2,BX MOV AX,NUM1 MOV BX,NUM2 PUSH AX PUSH BX CURS 15,33 。设置光标的位置为 15.33),第三行DISPMSG MSG1 。显示提示信息MOV AH,1 。接受键盘输入并回显INT 21H 。DOS 调用CMP AL,+ JE ADDI 。如果运算符为 +,则计算两数之和CMP AL,- JE SUBT 。如果运算符为 -,则计算两数之差CMP AL,* JE

13、 MULT 。如果运算符为 *,则计算两数之积CMP AL,/ JE DIVI 。如果运算符为 /,则计算两数之商CURS 16,25 。设置光标为 16,25)DISPMSG MSG2 。在屏幕上输出提示信息JMP D1 。- 。ADD THE TWO DATAS ADDI: POP BX POP AX ADD AX,BX 。计算两数字之和PUSH AX CURS 14,41 。设置光标位置为 =BX 则跳转XCHG AX,BX PUSH AX PUSH BX CURS 14,40 。设置光标位置为 14,40)DISPMSG MSG5 。在屏幕上显示负号POP BX POP AX D0:

14、SUB AX,BX 。计算两数之差PUSH AX CURS 14,41 。设置光标位置为 14,41)POP AX CALL CHANGE 。将结果转换为十进制数JMP D1 MULT: POP BX POP AX MUL BX 。计算两数之积PUSH AX CURS 14,41 。设置光标位置为 14,41)POP AX CALL CHANGE 。将结果转换为十进制数JMP D1 DIVI: POP BX POP AX CMP BX,0 。判断除数是否为0 JE ERROR 。如果是 0则跳转CWD DIV BX 。计算两数之商PUSH DX PUSH AX CURS 14,41 。设置光标

15、位置为 14,41)POP AX CALL CHANGE 。将十六进制数转换为十进制数精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 18 页,共 23 页个人资料整理仅限学习使用POP DX CMP DX,0 JNE LOP 。如果 DX 不等于 0 则跳转JMP D1 LOP: MOV CX,4 。设置精确度为小数点后4 位PUSH DX DISPMSG MSG6 。输出小数点POP DX CON: PUSH BX MOV AX,DX MOV BX,10 MUL BX POP BX CWD 。将 AX 的内容符号扩展到双字DIV BX 。计算小

16、数点后每一位的数字PUSH DX PUSH CX CALL CHANGE 。将十六进制数转化为十进制数POP CX POP DX CMP DX,0 。判断是否已经计算到小数点后第六位JE D1 。如果是,则跳转LOOP CON 。如果不是,就继续计算ERROR: CURS 15,33 。设置光标位置为 15,33)DISPMSG MSG8 。提示出错D1: RET D2: PUSH AX PUSH BX CURS 15,33 。设置光标位置为 15,33)DISPMSG MSG7 。提示输入出错POP BX POP AX RET BEGIN ENDP 精选学习资料 - - - - - - -

17、- - 名师归纳总结 - - - - - - -第 19 页,共 23 页个人资料整理仅限学习使用4程序调试4.1 运行界面分析运行界面如图4-1 图 4-1运行界面在 NUM1 这一行会提示输入第一个数据,NUM2 这一行提示输入第二个数据,输入完成两个数据后程序会提示允许输入运算符,输入无误后在RESULT 行显示结果。4.2 算法的分析本程序使用了宏和函数调用的方法,这样做使得整个程序体看上去严谨,舒服。整个程序中的CHANGE 子程序 , 将十六进制数转换为十进制数。BEGIN子程序开始运算。DISPMSG 子程序,显示用户界面。通过这几个及程序的协助,使得这个系统可以正常的运行。4.

18、3 调试过程及分析编写完代码后分别点击按钮“C”, ”L”, ”R”,依次完成编译、连接和运行过程,也可以进入DOS环境下用DEBUG 命令完成类似的功能,整个程序按“ESC ”退出。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 23 页个人资料整理仅限学习使用精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 21 页,共 23 页个人资料整理仅限学习使用5 心得体会5.1 设计体会本次课程设计我有不少收获:在选好了题目之后我查阅了不少资料,加深的对汇编语言的认识;在往后的几周上机实践中,

19、对汇编语言源程序的编辑、汇编、连接和调试的全过程更加熟练;在不断地求解过程中,了解到了汇编语言的一些特点,感觉到汇编语言的执行效率非常高,由于汇编是对底层的操作,这一点决定了它在代码的产量方面不如一些高级语言。本次课程设计的成功完成,我首先感谢我的指导老师刘向举,他自始至终都给予了我莫大的帮助,正是在刘向举老师的悉心指导下我才能顺利完成本次课程设计中的每一个计划。在这次课程设计中,无论从课题选择,方案论证上,还是到具体的设计和调试,每一项安排他都提出了至关重要的建议,使我少走了许多弯路,节省了大量时间,可以说,我的课程设计的顺利完成凝聚着老师的大量心血,在此向刘向举老师表示深深的感谢。当然,我

20、也要感谢我的同学和那些互联网上的朋友,他们毫不吝啬的将自己所掌握的知识拿出来资源共享,才能使我的部分功能模块得以实现,谢谢他们5.2 系统改进本程序有一些问题:1)不能进行混合的四则运算2)能计算的数值范围有限,容易产生益处3)不能进行有关小数的四则运算4)在进行除法运算时的精确度不高在以后的时间里,我会改进一些问题,力争使该程序完美。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 22 页,共 23 页个人资料整理仅限学习使用参考文献1 李敬兆等编 . 汇编语言程序设计 . 合肥:中国科学技术大学出版社,2008.9 2 李敬兆等编 . 汇编语言

21、程序设计实验教程及习题解答. 合肥:中国科学技术大学出版社, 2008.9 3 王爽等编 . 汇编语言 . 北京:清华大学出版社, 2003.5 4 曹加恒等编 . 新一代汇编语言课程设计. 北京:高等教育出版社,2003.6 5 杨路明等编 . 汇编语言程序设计 . 长沙:中南大学出版社,2005.8 6 詹仕华等编 . 汇编语言程序设计 . 北京:中国电力出版社,2008.2 7 詹仕华等编 . 汇编语言程序设计习题解答及课程设计、设计辅导. 北京:中国电力出版社, 2008.28 宋彩莉等编 . 汇编语言程序设计学习指导. 西安:西安交通大学出版社,2008.2 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 23 页,共 23 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁