




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华 北 科 技 学 院课程设计说明书课程名称: 汇编语言 班级: 计算机b08-1 姓名: _ 顾晓巍_ _学号:_ 200807014106 _设计题目: 带显示界面的加法器 _设计时间: 2010-6-21 至 2010-7-2 指导教师: _ _ 李冬艳 _评 语:_评阅成绩: 评阅教师:一、 课程设计目的进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。二、 课程设计要求 1要求编写并调试通过一个小型软件,实现对软件或硬件的操作。2遵循
2、模块化、结构化的程序设计方法。3. 要求程序必须正确。4. 程序简明易懂,多运用输入输出提示,出错信息及必要的注释。5. 要求程序结构合理,语句使用得当。6. 适当追求编程技巧和程序运行效率。三、 课程设计题目: 题目:带显示界面的加法器要求:用汇编语言设计一个加法器,实现加法求和运算。 所有数据在菜单界面上输入,输入结果也在菜单上显示,按回车键则退出加法器菜单并返回dos系统,否则继续进行加法运算。四、 课题分析这个题目是做一个带显示界面的加法器,它的主要难度是做一个显示界面,这就用到了bios的10号类型的显示中断功能,主要用到了置光标,以及清屏功能。设计加法器的功能就要考虑到存储器清零和
3、加数的位数问题,输入非数字数据的时候会显示出错并重新输入,这些与普通的设计加法一样,只不过要和置光标功能配合将光标置于合适位置。五、流程图:1、求和的流程图:开始axbeijiashuaxjiashu+ax将ax扩展为双字bx10000heax/bx的商axax/bx的余数bx1000he+2ax/bx的商axax/bx的余数bx100he+4ax/bx的商axax/bx的余数bx10he+6ax/bx的商he+8ax/bx的余数结束2、输入数字的流程图:开始bx0输入一个字符yal=0dh结束nnal39hyaxbx;bxax输出错误提示ax*10axbx;bxaxbxax+bx3、存储单元
4、清零的流程图:开始si-2;cx5si+2nhesi0cx=0y结束六、程序源代码:datas segment str1 db 0ah,0dh, * str2 db 0ah,0dh, * *str3 db 0ah,0dh, * *str4 db 0ah,0dh, * 1:enter jiafaqi * str5 db 0ah,0dh, * * str6 db 0ah,0dh, * other keys exit * str7 db 0ah,0dh, * * str8 db 0ah,0dh, * * str9 db 0ah,0dh, * * str10 db 0ah,0dh, *length1
5、equ $-str1 ;至str1的字节数str11 db enter exit,other keys continue!$str12 db please input again!$err db error!please input again!$str13 db beijiashu:,$str14 db jia shu:,$str15 db jie guo:,$jiashu dw ?beijiashu dw ?he dw ?show macro m ;定义宏,显示字符串 lea dx,m mov ah,9 int 21h endm guangbiao macro m1,m2mov dh,m1
6、 ;行(y坐标)mov dl,m2 ;列(x坐标)mov bh,0 ; 显示页码mov ah,02int 10h ;用文本坐标下,设置光标位置endmqingping macro m1,m2,m3,m4,m5mov ah,6 ;向上滚屏mov al,m1 ;滚动行数(0-清窗口)mov bh,0dh ;空白区域的缺省属性mov ch,m2 ;窗口的左上角位置,y坐标mov cl,m3 ;-,x坐标mov dh,m4 ;窗口的右上角位置,y坐标mov dl,m5 ;-,x坐标int 10hendmdatas endsstacks segmentstacks endscodes segment a
7、ssume cs:codes,ds:datas,ss:stacks start: mov ax,datas mov ds,ax mov al,3 ;80*25 16色文本mov ah,0 ;设置显示模式为80*25彩色文本模式int 10hmov bp,seg str1 ;取段地址mov es,bpmov bp,offset str1 ;取偏移地址mov cx,length1mov dx,0mov bl,09h ;属性(颜色)mov al,0 ; 光标位置不变(1改变)属性存在bl中,2和3的属性不在bl中guangbiao 4,15mov ah,13h ;在teletype模式下显示字符串i
8、nt 10hmov ah,1 ;键盘输入并回显int 21hcmp al,31h ;输入1进入加法器,输入2结束jnz loop8guangbiao 8,20 ;确定光标位置(字符串起始位置)show str13guangbiao 9,20show str14guangbiao 10,20show str15 mov si,-2mov cx,5 loop1: ;存储器清零 add si,2 mov hesi,0 loop loop1 mov bx,0loop2: ;输入被加数 qingping 1,8,30,8,50 qingping 1,9,30,9,50 qingping 1,10,30,
9、10,50 guangbiao 8,30 call input mov beijiashu,bxloop3: ;输入加数 qingping 1,13,18,13,51 qingping 1,12,20,12,50 mov bx,0 guangbiao 9,30 mov bx,0 call input mov jiashu,bxloop4: guangbiao 10,30 ;相加 mov ax,beijiashu add ax,jiashu cwd mov dx,0 ;扩展 并求结果各位数值 mov bx,10000 div bx mov he,ax mov ax,dx ;余数给ax cwd m
10、ov bx,1000 div bx mov he+2,ax mov ax,dx cwd mov bx,100 div bx mov he+4,ax mov ax,dx cwd mov bx,10 div bx mov he+6,ax mov he+8,dx mov si,-2 mov cx,5loop5: add si,2 ;结果输出 mov dx,hesi add dx,30h mov ah,02 int 21h loop loop5 ;每位循环输出loop6: guangbiao 13,19 ;退出或继续 show str11 mov ah,01 int 21h cmp al,0dh ;回
11、车退出 jne loop7 mov ah,4ch int 21hloop7: qingping 1,13,18,13,51 guangbiao 12,21 show str12 jmp loop1loop8: mov ah,4ch int 21herror: guangbiao 12,21 show err jmp loop1input proc near ;输入子程序lp1: mov ah,01 int 21h cmp al,0dh ;输入回车输入结束 je exit cmp al,31h jb error cmp al,39h ja error ;不是09之间则显示错误 sub al,30
12、h cbw xchg ax,bx mov cx,10 mul cx add bx,ax jmp lp1 ;跳转直到输入回车exit: retinput endpcodes ends end start七、结果显示1. 开始菜单: 2. 进入加法器并执行:八、感想、收获及体会这个题目要求是带有显示界面的加法器,刚拿到这个题目觉得就功能来看还算简单,只要实现两个数的加法,关键是界面的处理上有用到bios的10号类型的显示中断功能,由于在课上没有太多的涉及,让我一时理不清头绪,尤其是弄不懂如何在输入时处理光标的位置,为此我在学校图书馆查阅了相关书籍,也在网上找到了一些有用的资料,对10号功能有了一定
13、的了解,也知道了在整个程序中如何将这些功能与加法器的基本功能联系在一起。如此一来就对全部的程序有个大致的思路。其余比较关键的就是本程序的细节问题,比如在输入时如何防止程序出错,就是当输入非数字的数据时可以提示使用者出错并使其重新输入。与之相比,两个数的加法比较麻烦的就是数位问题,由于其位数上的限制,如果超出一定的数值就会使结果出现错误,所以我根据结果的位数在显示界面上提示输入09999的数值,以确保其正确性。这些其实也可以在程序中有所体现,比如可以当结果溢出时可以提示出错,但介于个人能力和时间的问题,我只能做到在显示时给一定的提示,这也是我在这个程序里比较遗憾的部分。 通过本次课程设计,我不仅仅对bios的10号类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨国房车营地租赁合同及国际旅游特色产品开发协议
- 婴儿用品安全退运与质保协议
- 备份恢复服务安全加强补充合同
- 供应链供应链金融产品推广补充协议
- 常见传染病应急措施
- 粒子治疗技术应用与发展
- 2024-2025学年高中历史专题三第二次世界大战五世界反法西斯战争的胜利课后作业含解析人民版选修3
- 肿瘤危重护理规范与实施
- 脑癌患者综合护理方案
- 河南省平顶山市第四十一中教育集团2024-2025学年八年级下学期期中调研地理试卷
- 建筑结构荷载规范DBJ-T 15-101-2022
- 污水管网巡查及养护 投标方案(技术方案)
- 危大工程动态判定表
- 大脑前-前交通动脉瘤的护理查房
- 《国家审计准则解读》课件
- 糖尿病患者的药物治疗指导与管理
- 政务服务中心物业服务投标方案
- 居民自建桩安装告知书回执
- 血管活性药物静脉输注护理团体解读
- 翻译中的文化因素及文化负载词的处理
- 危险化学品经营许可安全技术
评论
0/150
提交评论