《2022年汇编语言简单计算器程序课程方案报告.docx》由会员分享,可在线阅读,更多相关《2022年汇编语言简单计算器程序课程方案报告.docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用课 程 设 计 说 明 书题目 : 简洁运算器院 系:专业班级:学 号:同学姓名:指导老师:2022 年 12 月 31 日名师归纳总结 - - - - - - -第 1 页,共 23 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用安徽理工高校课程设计 论文)任务书运算机科学与工程学院硬件教研室专业 设计 技 术 参1 熟识汇编指令、宏汇编语言的编程方法 2 BIOS 中断调用、系统功能中断调用方法 3 磁盘文件、及文件内容操作数题目的挑选是依据汇编语言的特点主要针对系统内部的一些中断调
2、用、系统功能调用、系统数据处理、文件数据处理而设计的,是对所学课程 学问较为系统的应用;设 计 要 求由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重 点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计;不要局限于题目所规定的要求,可以敏捷裁减,设计出功能更完善程序;另外,也可以自己设计题目,同时,提出具体的功能描述,经指导老师 审查同意后也可作为课程设计的题目;工 作 量1. 完成所选题目的软件设计;2.课程设计说明书1000 字不包括程序源代码)左右;工 作 第 1 次熟识软件环境;第 2 次绘制程序流程图;第 3 次用编写程序;计 第 4 次用调试运行程序;第 5
3、 次编写课程设计说明书 划名师归纳总结 - - - - - - -第 2 页,共 23 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用1 李敬兆等编 .汇编语言程序设计.合肥:中国科学技术高校出版 社, 2022.92 李敬兆等编 .汇编语言程序设计试验教程及习题解答.合肥:中国科学技术高校出版社, 2022.9参3 王爽等编 .汇编语言 .北京:清华高校出版社,2003.5.4 曹加恒等编 .新一代汇编语言课程设计.北京:高等训练出版社,考2003.6资5 杨路明等编 .汇编语言程序设计 .长沙:中南高校出版社,2005.8料6 詹仕华等编 .汇编语言程序设计
4、 .北京:中国电力出版社,2022.27 詹仕华等编 .汇编语言程序设计习题解答及课程设计、设计辅导北京:中国电力出版社,2022.28 宋彩莉等编 .汇编语言程序设计学习指导.西安:西安交通高校出 版社, 2022.2名师归纳总结 指导老师签字教研室主任签字第 3 页,共 23 页2022年 12 月 17 日- - - - - - -精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用安徽理工高校课程设计 MOV DL,B INT 10H ;BIOS 调用ENDM ;- DISPMSG MACRO MESSAGE LEA DX,MESSAGE ;传递 MESSAGE
5、 的偏移地址 MOV AH,9 ;显示字符串 INT 21H ;DOS 调用ENDM ;- CLEAR MACRO 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
6、 DB * *,0DH,0AH ;db * *,0dh,0ah ;,0dh,0ah,0dh,0ah 名师归纳总结 - - - - - - -第 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,0
7、AH DB * *,0DH DB * NUM2: DB *,0DH,0AH ;,0dh,0ah,0dh,0ah,0dh 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
8、 choose +,-,*,/,$ MSG2 DB you choose wrong,$,0AH,0DH MSG3 DB 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:
10、 MOV AH,1 ;键盘输入并回显 INT 21H ;DOS 调用名师归纳总结 - - - - - - -第 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
11、 MOV DI,10 MUL DI XCHG AX,BX ADD BX,AX LOOP NEWCHAR1 MOV NUM1,BX CURS 11,41 ;设置光标位为 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
12、 ;假如输入不是 0-9,就转化成相应的字符 CBW ;将 AL 符号扩展到 AH XCHG AX,BX MOV DI,10 MUL DI XCHG AX,BX ADD BX,AX 名师归纳总结 - - - - - - -第 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 ;接受键盘输入并回显
13、 INT 21H ;DOS 调用 CMP AL,+ JE ADDI ;假如运算符为 +,就运算两数之和 CMP AL,- JE SUBT ;假如运算符为 -,就运算两数之差 CMP AL,* JE 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 ;设置光标位置
14、为 =BX 就跳转 XCHG AX,BX PUSH AX PUSH BX CURS 14,40 ;设置光标位置为 14,40)DISPMSG MSG5 ;在屏幕上显示负号 POP BX POP AX D0: 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
15、 DIVI: POP BX POP AX CMP BX,0 ;判定除数是否为 0 JE ERROR ;假如是 0 就跳转 CWD DIV BX ;运算两数之商 PUSH DX PUSH AX CURS 14,41 ;设置光标位置为 14,41)POP AX CALL CHANGE ;将十六进制数转换为十进制数名师归纳总结 - - - - - - -第 18 页,共 23 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用POP DX CMP DX,0 JNE LOP ;假如 DX 不等于 0 就跳转 JMP D1 LOP: MOV CX,4 ;设置精确度为小数点后
16、4 位 PUSH DX DISPMSG MSG6 ;输出小数点 POP DX CON: PUSH BX MOV AX,DX MOV BX,10 MUL BX POP BX CWD ;将 AX 的内容符号扩展到双字 DIV BX ;运算小数点后每一位的数字 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 ;提示出错
17、D1: RET D2: PUSH AX PUSH BX CURS 15,33 ;设置光标位置为 15,33)DISPMSG MSG7 ;提示输入出错 POP BX POP AX RET BEGIN ENDP 名师归纳总结 - - - - - - -第 19 页,共 23 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用4程序调试4.1 运行界面分析运行界面如图 4-1 图 4-1 运行界面在 NUM1这一行会提示输入第一个数据,NUM2这一行提示输入其次个数据,输入完成两个数据后程序会提示答应输入运算符,输入无误后在 RESULT行显示结果;4.2 算法的分析本程
18、序使用了宏和函数调用的方法,这样做使得整个程序体看上去严谨,舒适;整个程序中的CHANGE子程序 , 将十六进制数转换为十进制数;BEGIN 子程序开头运算; DISPMSG子程序,显示用户界面;通过这几个及程序的帮助,使得这个系统可以正常的运行;4.3 调试过程及分析编写完代码后分别点击按钮“C” , ” L” , ” R” ,依次完成编译、连接和运行过程,也可以进入DOS环境下用DEBUG命令完成类似的功能,整个程序按“ESC” 退出;名师归纳总结 - - - - - - -第 20 页,共 23 页精选学习资料 - - - - - - - - - 名师归纳总结 个人资料整理仅限学习使用第
19、 21 页,共 23 页- - - - - - -精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用5 心得体会5.1 设计体会本次课程设计我有不少收成:在选好了题目之后我查阅了不少资料,加深的对汇 编语言的熟识;在往后的几周上机实践中,对汇编语言源程序的编辑、汇编、连接和 调试的全过程更加娴熟;在不断地求解过程中,明白到了汇编语言的一些特点,感觉 到汇编语言的执行效率特别高,由于汇编是对底层的操作,这一点打算了它在代码的 产量方面不如一些高级语言;本次课程设计的胜利完成,我第一感谢我的指导老师刘向举,他自始至终都赐予 了我莫大的帮忙,正是在刘向举老师的尽心指导下我才
20、能顺当完成本次课程设计中的 每一个方案;在这次课程设计中,无论从课题挑选,方案论证上,仍是到具体的设计 和调试,每一项支配他都提出了至关重要的建议,使我少走了很多弯路,节约了大量 时间,可以说,我的课程设计的顺当完成凝结着老师的大量心血,在此向刘向举老师 表示深深的感谢;当然,我也要感谢我的同学和那些互联网上的伴侣,他们毫不吝啬的将自己所把握的 学问拿出来资源共享,才能使我的部分功能模块得以实现,感谢他们5.2 系统改进本程序有一些问题:1)不能进行混合的四就运算2)能运算的数值范畴有限,简洁产生好处3)不能进行有关小数的四就运算4)在进行除法运算时的精确度不高在以后的时间里,我会改进一些问题
21、,力争使该程序完善;名师归纳总结 - - - - - - -第 22 页,共 23 页精选学习资料 - - - - - - - - - 个人资料整理 仅限学习使用参考文献1 李敬兆等编 . 汇编语言程序设计 . 合肥:中国科学技术高校出版社,2022.9 2 李敬兆等编 . 汇编语言程序设计试验教程及习题解答高校出版社, 2022.9 . 合肥:中国科学技术3 王爽等编 . 汇编语言 . 北京:清华高校出版社, 2003.5 4 曹加恒等编 . 新一代汇编语言课程设计. 北京:高等训练出版社,2003.6 5 杨路明等编 . 汇编语言程序设计 . 长沙:中南高校出版社,2005.8 6 詹仕华等编 . 汇编语言程序设计 . 北京:中国电力出版社,2022.2 7 詹仕华等编 . 汇编语言程序设计习题解答及课程设计、设计辅导. 北京:中国电力出版社, 2022.28 宋彩莉等编 . 汇编语言程序设计学习指导2022.2 . 西安:西安交通高校出版社,名师归纳总结 - - - - - - -第 23 页,共 23 页