版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号:120610340505武陵理1人学课程设计题目学院专业班级姓名指导教师不同数制的数据相互转换程序的设计计算机科学与技术计算机科学与技术计算机0605班余欢欢刘传文2009年 1 月 15 日附件2 :课程设计任务书学生姓名:余欢欢 专业班级:计算机0605班指导教师:刘传文工作单位:计算机科学与技术学院题目:初始条件:理论:学完“汇编语言程序设计”、“课程计算机概论”、“高级语言程序设计”和 “数字逻辑”。实践:计算机学院科学系实验中心提供计算机和软件平台。如果自己有计算机可 以在其上进行设计。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)输入二
2、进制,十六进制,十进制的无符号数,将它们转换成不同进制的形式, 并且输出出来。(2)程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。(3)设计若干用例(测试数据),上机测试程序并分析(评价)所设计的程序。(4)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:在正文第一行写课程设计题目;1 .需求说明(要求、功能简述)或问题描述;2 .设计说明(简要的分析与概要设计);3 .详细的算法描述;4 .源程序与执行结果(含测试方法和测试结果);5 .使用说明;6 .总结,包括设计心得(设计的特点、不足、收获与体会)和展望(该 程序进一步改进扩展的设想)。时间安排:设计时间一
3、周:周1 :查阅相关资料。周2:系统分析,设计。周34:编程并上机调试。周5:撰写课程设计报告。设计验收安排:20周星期五8:00起到计算机学院科学系实验中心进行上机验收。设计报告书收取时间:20周的星期五下午5:00之前。指导教师签名:2009年1月9日系主任(或责任教师)签名:2009年1月9日不同数制的数据相互转换程序的设计1. 需求说明(要求、功能简述)或问题描述;这个课程设计的要求和就是通过一个较大型实用程序的设计与实现,综合运用所学知识,加深理解和掌握。同时培养学生分析问题和解决问题的能力,以及自学能力 。这个程序首先要求选择一种数值转换的种类,例如我们可以选择二进制输入, 十进制
4、输出,这样就要求我们把输入的二进制转换成十进制。由于按照我们要求的输入,输出, 总共有 6 种情况。 所以我们不能一一写出来每个程序的执行过程, 对于不同的情况我们只需要定义不同的输入函数和输出函数,根据不同的情况, 调用不同的输入函数和输出函数,这样做是为了对于多进制的情况,这样能简化程序。我定义了二进制输入,十进制输入,十六进制输入,二进制输出,十进制输出,十六进制输出,这样就能满足各种需要。这个实验还涉及到各种跳转,各个寄存器之间的移动,特定的输入和输出。调用 01h 的输入功能,结果在al 中,调用02h 的输出功能,输出得到是dl 里面的内容。提示信息的输出是用db来定义的,结束标志
5、是$,同时我也定义了一个表, 来应对各种不同的情况。由于寄存器有限,所以我们有时会用到入栈和出栈,同时寄存器的运用要很有技巧,我也从这个实验中学到了很多东西,对于数值转换的原理也有了较为深刻的了解。为了这个实验,我查阅及分析相关的参考资料。确定功能和功能结构,数据结构,以及用户界面;对各功能模块进行准确的定义,对全局数据变量进行说明和定义;确定各功能模块的算法并画出相应的数据流图。最后编程并上机调试,最终程序成功运行。2. 设计说明(简要的分析与概要设计);确定程序功能和功能结构,数据结构,以及用户界面;对各功能模块进行准确的定义,对全局数据变量进行说明和定义;确定各功能模块的原理及算法并画出
6、相应的数据和程序流图。实验的主要思路我会慢慢描述的。首先输出一个选择窗口,有6 种选择。按照自己的要求选择,选择之后,就会调用相应的输入函数,必须输入相应进制的数进行处理,2 进制数必须输入16 位, 16 进制数输入4 位, 10 进制数要求输入的必须小于2 的 16 次方。输入之后,程序就会处理输入数据,然后调用相应的输出函数,就会输出相应的数据。输入函数,输出函数都是子函数。他们都有自己的功能,不管有多少中进制,处理的过程都是一样的,这种方法能够重复使用相同功能的函数,不会出现代码的重复定义和使用。3. 详细的算法描述;MENU DB 'Please Input your Cho
7、ice:',0dh,0ahdb '1: Bin ->Dec',0dh,0ahdb '2: Bin ->Hex',0dh,0ahdb '3: Dec ->Bin',0dh,0ahdb '4: Dec ->Hex',0dh,0ahdb '5: Hex ->Dec',0dh,0ahdb '6: Hex ->Bin',0dh,0ahdb '0: Exit. $',0dh,0ah以上是选择界面的输出信息,按照上面对应的进制转换进行选择。mess1 d
8、b 'Please input a Bin number:$'mess2 db 'Please input a Dec number:$'mess3 db 'Please input a Hex number:$'mess4 db 'Output Bin is: $'mess5 db 'Output Dec is: $'mess6 db 'Output Hex is: $'这部分是为了帮我们的输入输出理解的句子,他们在适当的时候帮助我们理解。LKS:LEA DX,MENUMOV AH,09HINT
9、21HMOV AH,01HINT 21HCMP AL,39HJBE LK1SUB AL,7LK1:AND AL,0FHLEA SI,TABLEMOV AH,0SHL AX,1ADD SI,AXJMP SI这部分是为了实现根据输入进行跳转,从而对应到正确的进制转换。CRLF PROCMOV AH,02HMOV DL,0AHINT 21HMOV DL,0DHINT 21HRETCRLF ENDP这部分是实现回车换行的操作。INBIN PROCLEA DX,MESS1MOV AH,09HINT 21HMOV BX,0INBL1:MOV AH,01HINT 21HCMP AL,0DHJZ INBEXI
10、TAND AL,01HSHL BX,1OR BL,ALJMP INBL1INBEXIT:RETINBIN END这是输入二进制的实现部分。OUTBIN PROCLEA DX,MESS4MOV AH,09HINT 21HMOV CX,16OBL1:ROL BX,1MOV DL,BLAND DL,01HOR DL,30HMOV AH,02HINT 21HLOOP OBL1RETOUTBIN ENDP上面的部分是实现1 进制输出的实现部分。4. 源程序与执行结果(含测试方法和测试结果);DATA SEGMENTMENU DB 'Please Input your Choice:',0
11、dh,0ah db '1: Bin ->Dec',0dh,0ahdb '2: Bin ->Hex',0dh,0ahdb '3: Dec ->Bin',0dh,0ahdb '4: Dec ->Hex',0dh,0ahdb '5: Hex ->Dec',0dh,0ahdb '6: Hex ->Bin',0dh,0ahdb '0: Exit. $',0dh,0ahmess1 db 'Please input a Bin number:$'
12、mess2 db 'Please input a Dec number:$'mess3 db 'Please input a Hex number:$'mess4 db 'Output Bin is: $'mess5 db 'Output Dec is: $'mess6 db 'Output Hex is: $'TABLE DW L0,L1,L2,L3,L4,L5,L6DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARPUSH DSXOR AX,AXPU
13、SH AXMOV AX,DATAMOV DS,AXLKS:LEA DX,MENUMOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,39HJBE LK1SUB AL,7LK1:AND AL,0FHLEA SI,TABLEMOV AH,0SHL AX,1ADD SI,AX JMP SIL1:CALL INBIN CALL CRLF CALL OUTDEC CALL CRLF JMP LKSL2:CALL INBIN CALL CRLF CALL OUTHEX CALL CRLF JMP LKSL3:CALL INDEC CALL CRLF CALL OUTBIN C
14、ALL CRLF JMP LKSL4:CALL INDEC CALL CRLF CALL OUTHEX CALL CRLF JMP LKSL5:CALL INHEX CALL CRLF CALL OUTDEC CALL CRLF JMP LKSL6:CALL INHEX CALL CRLF CALL OUTBIN CALL CRLF JMP LKSL0:RETMAIN ENDPCRLF PROCMOV AH,02H MOV DL,0AH INT 21HMOV DL,0DH INT 21HRETCRLF ENDPINBIN PROCLEA DX,MESS1MOV AH,09HINT 21HMOV
15、 BX,0INBL1:MOV AH,01HINT 21HCMP AL,0DHJZ INBEXITAND AL,01HSHL BX,1OR BL,ALJMP INBL1INBEXIT:RETINBIN ENDP二进制的输入:每次我们输入的数都放在al 中, 每次都将al 和空的 bl 进行或运算,实际上就将我们输入的数据存到了bx 中,之后左移一位,在输入数据,之后重复进行上面的步骤,这样就将我们所输入的数据存到了bx 中。INDEC PROC LEA DX,MESS2 MOV AH,09H INT 21HMOV BX,0INDL1:MOV AH,01H INT 21H CMP AL,0DH J
16、Z INDEXIT SUB AL,30H CMP AL,9 JBE INDL2 SUB AL,7INDL2:MOV AH,0 XCHG AX,BX MOV CX,10 MUL CX ADD BX,AX JMP INDL1INDEXIT:RETINDEC ENDP十进制的输入:通过ax和bx的配合使用,每次都将前一次输入的数据乘以10,在加上这一次的输入,就这样就形成了10 进制的输入。INHEX PROCLEA DX,MESS3MOV AH,09HINT 21HMOV BX,0IHL1:MOV AH,01HINT 21HCMP AL,0DHJZ IHEXITSUB AL,30HCMP AL,9
17、JBE IHL2SUB AL,7IHL2:MOV CL,4SHL BX,CLOR BL,ALJMP IHL1IHEXIT:RETINHEX ENDP十六进制的输入: 输入的数据放在al 中, 将 al 和 bl 将行或运算,将我们所输入的数据保存起来,之后左移4位,在重复这个操作,将我们所输入的数据全部保存在 16 数据里面。OUTBIN PROCLEA DX,MESS4MOV AH,09HINT 21HMOV CX,16OBL1:ROL BX,1MOV DL,BLAND DL,01HOR DL,30HMOV AH,02HINT 21HLOOP OBL1RETOUTBIN ENDP2 进制的输
18、出:我们所输入的数据都保存在bx 中,每次都将bx 左移一位,然后将 bl 的数据转存到dl 中,加上30h 后,在输出之后就是二进制的了。OUTDEC PROC LEA DX,MESS5 MOV AH,09H INT 21HPUSH BXMOV AX,BXMOV DX,0 ; 余数MOV CX,10000DIV CXMOV BX,DXMOV DL,ALOR DL,30HMOV AH,02HINT 21HMOV AX,BXMOV DX,0MOV CX,1000DIV CXMOV BX,DXMOV DL,ALOR DL,30HMOV AH,02HINT 21HMOV AX,BXMOV DX,0M
19、OV CX,100 DIV CXMOV BX,DXMOV DL,ALOR DL,30HMOV AH,02HINT 21HMOV AX,BXMOV CL,10DIV CLMOV BL,AH MOV DL,ALOR DL,30HMOV AH,02HINT 21HMOV DL,BLOR DL,30HMOV AH,02HINT 21HPOP BXRETOUTDEC ENDP10进制的输出:将保存在bx中的数据转存到ax中来,由于19位数据所存最 大数据是6万多,所以第一次除以一万,余数存放在 dx中,商存在al中,将 ax中的内容转存到dl中,输出出来,而将dx中的余数又转存到bx中,继续上 面的操作
20、,不过除数改城了 1000,然后除数变成100, 10,最后输出商。OUTHEX PROCLEA DX,MESS6MOV AH,09HINT 21HMOV CX,4OHL1:ROL BX,1ROL BX,1ROL BX,1ROL BX,1MOV DL,BLAND DL,0FHADD DL,30HCMP DL,39HJBE OHL2ADD DL,7OHL2:MOV AH,02HINT 21HLOOP OHL1RETOUTHEX ENDP16进制的输出:bx中左移4位,将dl低四位与bl低四位,进行与运算,结果 在dl中,然手加上30h,变成ask码输出,就可以输出16进制数。CODE ENDSE
21、ND MAIN试验的结果:1.二进制转换为10进制2.二进制转换为16进制Iease Input your Choice:Bin >Dec:Bin >Hex:Dec ->Bin:Dec >Hex:Hex >Dec:Hex 一'>Bin: Exit. 2Please input a Bin number010010100111130titput Hex H53G3.10进制转换为二进制easeBin Ein Dec Dec Hex Hexnput </our GJioice :>Dec>Hex>Bin>Hex>Dec>BinufTiberExit_ 3Please input a Dec i ut Bin is : (430000000001 RI004 .十进制转换为十六进制5 .十六进制转换为十进制Please Input soup Choice:1: Bin ->Dec2= Bin >Hex3: Dec >Bin也; Dec -&g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户关系管理数据库模板及分析工具
- 2025年中药煎药知识试题及答案
- 2025年数字化文化产业虚拟现实与数字娱乐研究报告及未来发展趋势预测
- 安全审计与整改检查单模板
- 2025年文化行业数字化文化传播策略研究报告及未来发展趋势预测
- 2025年网络直播行业直播内容与电商模式研究报告及未来发展趋势预测
- 产品设计优化与创新支持框架模型
- 2025年数码产品行业数码产品品牌发展策略报告
- 2025年电力能源行业可再生能源发展分析研究报告及未来发展趋势预测
- 2025年区块链技术在金融领域应用研究报告及未来发展趋势预测
- ISO13485内审员培训-华光
- 2025年中国双轴高低速搅拌机市场调查研究报告
- 中医诊所消防管理制度
- 强直性脊柱炎患者脑血流量和脑白质微结构改变的多模态MRI研究
- 酒店设施设备保养与维护规程
- 硕士之路的挑战与收获
- 高血压病人的护理(PPT)
- T/CECS 10378-2024建筑用辐射致冷涂料
- CATIA创成式外形设计模块-1
- 家具供货结算协议书
- 6.1碳单质的多样性(第一课时)-【知识探究】九年级化学人教版(2024)上册
评论
0/150
提交评论