微机课设2数制转换3

更新时间:2024-04-21 23:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计任务书

学生姓名: 专业班级: 指导教师: 工作单位:

题 目: 数制转换3 任务内容:通过键盘输入一个8进制数,通过屏幕提示菜单选择转换成2进制,10进

制或者16进制数并显示。

要求完成的主要任务:

设计方案的选择与确定:

根据题目要求,参考相关文献资料,选择合适的软硬件设计方案。

图纸绘制:

确定硬件方案,完成完整硬件系统连线图的绘制。 程序编制:

确定软件方案,绘制系统软件流程图,完成汇编程序的编制。 说明书撰写:

完成课程设计说明书的撰写,字数不少于3000字。

时间安排:

资料检索与收集 2天 系统方案设计与确定 1天 系统设计与程序编写 3天 说明书撰写 3天 答辩 1天

指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日

摘要

本次程序设计主要是利用汇编语言中的DOS调用和各种进制间的转换来实现通过键盘输入一个8进制数,在屏幕上提示菜单选择转换成2进制,10进制或者16进制数并显示。

汇编语言是面向机器的程序设计语言。汇编语言比机器语言易于读写、调试和修改,同时也具有执行速度快,占用内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植,本次设计主要是利用8086汇编语言进行设计。

常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为IT软件,也是我们常说的Windows编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序时成倍的优秀,但是代价是需要更长的时间来优化,假如是对计算机原理及编程基础不扎实,实在是得不偿失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花几倍甚至是几十倍的时间,不如使用其它语言来完成只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下得必然结果。

但是,这也并不代表汇编语言是没有用的、不需要学的,相反,只有在理解和掌握汇编语言的基础上,才能更好的使用其它高级语言。

关键词:汇编,汇编语言,机器语言,DOS调用

I

摘要 ......................................................................................... I 1设计任务及要求 ................................................................. 1 2分析任务及要求 ................................................................. 1

2.1 数制转换算法 ................................................................................. 1

2.1.1 八进制转换成二进制 ................................................................... 1 2.1.2八进制转换成十进制 .................................................................... 1 2.1.3八进制转换成十六进制 ................................................................ 1

2程序设计流程 ..................................................................... 2

2.1绘制程序流程图 .............................................................................. 2 2.2设计思路 .......................................................................................... 3

3汇编语言源程序设计 ......................................................... 3

3.1堆栈段程序设计 .............................................................................. 3 3.2 数据段程序设计 ............................................................................. 3 3.3主程序设计 ...................................................................................... 4 3.4输入八进制数程序 .......................................................................... 5 3.5输出二进制数程序 .......................................................................... 6 3.6输出十进制数程序 .......................................................................... 7 3.7输出十六进制数程序 ...................................................................... 8 3.8回车键确定程序 .............................................................................. 9

4结果分析 ............................................................................. 9 5小结与体会 ....................................................................... 12 参考文献 .............................................................................. 13

II

武汉理工大学《微机原理与接口技术》课程设计说明书

数制转换程序设计

1设计任务及要求

题目内容:通过键盘输入一个8进制数,通过屏幕提示菜单选择转换成2进制,10进制或者16进制数并显示。

设计要求:根据题目要求,参考相关文献资料,选择合适的软硬件设计方案。

图纸绘制:确定硬件方案,完成完整硬件系统连线图的绘制。

程序编制:确定软件方案,绘制系统软件流程图,完成汇编程序的编制。

2分析任务及要求

通过对题目,容易看出本次设计可分为3个部分:输入、进制转换、输出显示。输入可通过DOS调用——0AH,输入一个八进制数;进制转换比较复杂,会单独在下面一节进行分析;输出则也是通过DOS调用——09H,实现输出并显示。

2.1 数制转换算法

2.1.1 八进制转换成二进制

由八进制向二进制转换可将每一位八进制数对应于三位二进制数,依次进行替换,转换方式如下所示(左边是一位八进制数,右边是该八进制数所对应的二进制数):

0——000;1——001;2——010;3——011;4——100; 5——101;6——110;7——111;

2.1.2八进制转换成十进制

八进制向十进制的转换可通过按基数位权的展开来实现,方法是将八进制每位上的数乘以权,然后相加之和即是十进制数。

2.1.3八进制转换成十六进制

若将八进制直接向十六进制转换,则比较复杂,故可以将八进制先转换为二进制再转换为十六进制。将八进制转换为二进制的算法在该第一节已经说明,故下面只说明二进制转换为十六进制的算法(左边为二进制数,4个一组,右边为16进制):

1

武汉理工大学《微机原理与接口技术》课程设计说明书

0000——0;0001——1;0010——2;0011——3; 0100——4;0101——5;0110——6;0111——7; 1000——8;1001——9;1010——A;1011——B; 1100——C;1101——D;1110——E;1111——F;

2程序设计流程

2.1绘制程序流程图

输入数字是否小 N Y

于4? DONE 从键盘输入数字 显示MENU 开始 N

2

显示ERROR 重新显示MENU

武汉理工大学《微机原理与接口技术》课程设计说明书

DONE 数字为1,转向L1 输入一个八进制数 转换为二进制数并输出显示 返回主程序 数字为1,转向L1 输入一个八进制数 转换为二进制数并输出显示 返回主程序 数字为1,转向L1 输入一个八进制数 转换为二进制数并输出显示 返回主程序 图2-1 程序流程图

2.2设计思路

首先对原理进行分析,了解不同进制数之间是如何进行转换的,充分认识汇编语言的指令系统,掌握各个汇编语言的指令系统,掌握各个汇编指令的功能及用法,了解各种程序结构(顺序、分支、循环和子程序)的特点。

首先定义堆栈段,再定义数据段,在数据段中输入MENU中要显示的内容,再建一个表TABLE,TABLE中的内容为L1,L2,L3。然后根据题目要求设计简单的程序流程图,再根据流程图设计出每一个模块的汇编语言程序,然后再通过调用、跳转、转移等方法将各个子程序连接在一起。这样依据题目要求的汇编程序就初步完成了。本次利用的软件是MF2KP,首先在MF2KP环境下输入设计的汇编程序,然后编译、连接、运行。

3汇编语言源程序设计

3.1堆栈段程序设计

首先定义堆栈段的程序,程序设计如下所示: STACK SEGMENT DB 200 DUP(?) STACK ENDS

3.2 数据段程序设计

再定义数据段的程序,程序设计如下所示: DATA SEGMENT

3

武汉理工大学《微机原理与接口技术》课程设计说明书

MENU DB 'Please Input Your Choice:

1:Bin2;2:Dec10;3:Hex16',0dh,0ah Mess1 db 'Please input a Oct8 number:',0dh,0ah Mess2 db 'Output Bin2 is:',0dh,0ah Mess3 db 'Output Dec10 is:',0dh,0ah Mess4 db 'Output Hex16 is:',0dh,0ah

ERROR DB 'ERROR!PLEASE INPUT YOUR CHOICE AGAIN' DATA ENDS

3.3主程序设计

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA START:

MOV AX,DATA MOV DS,AX AA1:LEA DX,MENU MOV AH,09H INT 21H MOV AH,01H INT 21H SUB AL,30H CMP AL,04H JB DONE LEA DX,ERROR MOV AH,09H INT 21H JMP AA1 DONE:CMP AL,01H JZ L1 CMP AL,02H

4

武汉理工大学《微机原理与接口技术》课程设计说明书

JZ L2 CMP AL,03H JZ L3

L1:CALL INOCT CALL FAR CRLF CALL FAR OUTBIN CALL FAR CRLF JMP AA1 L2:CALL INOCT CALL CRLF CALL OUTDEC CALL CRLF JMP AA1 L3:CALL FAR INOCT CALL FAR CRLF CALL FAR OUTHEX CALL FAR CRLF JMP AA1 MAIN ENDP MOV AH,4CH INT 21H CODE ENDS

END START

3.4输入八进制数程序

INOCT PROC LEA DX,MESS1 MOV AH,09H

5

武汉理工大学《微机原理与接口技术》课程设计说明书

INT 21H MOV BX,0 INOL1:MOV AH,01H INT 21H CMP AL,0DH JZ INOEXIT SUB AL,30H CMP AL,9 JBE INOL2 SUB AL,7 INOL2:MOV CL,3 SHL BX,CL OR BL,AL JMP INOL1 INOEXIT:RET INOCT ENDP

3.5输出二进制数程序OUTBIN PROC LEA DX,MESS2 MOV AH,09H INT 21H MOV CX,16 OBL1:ROL BX,1 MOV DL,BL AND DL,01H OR DL,30H MOV AH,02H INT 21H

6

武汉理工大学《微机原理与接口技术》课程设计说明书

LOOP OBL1 RET OUTBIN ENDP

3.6输出十进制数程序

OUTDEC PROC LEA DX,MESS3 MOV AH,09H INT 21H PUSH BX MOV AX,BX MOV DX,0 MOV CX,10000 DIV CX MOV BX,DX MOV DL,AL OR DL,30H MOV AH,02H INT 21H MOV AX,BX MOV DX,0 MOV CX,1000 DIV CX MOV BX,DX MOV DL,AL OR DL,30H MOV AH,02H INT 21H MOV AX,BX

7

武汉理工大学《微机原理与接口技术》课程设计说明书

MOV CL,100 DIV CX MOV BX,DX MOV DL,AL OR CL,30H MOV AH,02H INT 21H MOV AX,BX MOV CL,10 DIV CL MOV BL,AH MOV DL,AL OR DL,30H MOV AH,02H INT 21H MOV DL,BL OR DL,30H INT 21H POP BX RET

OUTDEC ENDP

3.7输出十六进制数程序OUTHEX PROC LEA DX,MESS4 MOV AH,09H INT 21H MOV CX,4 OHL1:ROL BX,1

8

武汉理工大学《微机原理与接口技术》课程设计说明书

ROL BX,1 ROL BX,1 ROL BX,1 MOV DL,BL AND DL,0FH ADD DL,30H CMP DL,39H JBE OHL2 ADD DL,7 OHL2:MOV AH,02H INT 21H LOOP OHL1 RET

OUTHEX ENDP

3.8回车键确定程序

CRLF PROC MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H RET CRLF ENDP

4结果分析

调试运行后首先出现的界面是:请输入您的选择:转换为二进制输出则输入1;转换为十进制输出则输入2;转换为十六进制输出则输入3;;结果如下图4-1所示:

9

武汉理工大学《微机原理与接口技术》课程设计说明书

图4-1 请输入您的选择

上述选择输入后,就显示:请输入一个八进制数,结果如下图4-2所示:

图4-2 请求输入一个八进制数

10

武汉理工大学《微机原理与接口技术》课程设计说明书

此后输入按照界面提示输入相应的数字即可完成各数制间的转换,其算法已在前面详细说明,这里不再赘述。

11

武汉理工大学《微机原理与接口技术》课程设计说明书

5小结与体会

\微机原理与系统设计\作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intel8086CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。

这次微机原理课程设计历时十天,在整整十天的日子里,可以说得是甘苦与共,甘的是可以学到很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序调试的过程中也有利于查错。

其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说是困难重重,这毕竟是第一次做,难免会遇到各种各样的问题,同时也会在设计的过程中发现自己的不足之处,例如对以前所学的知识掌握不够牢固、理解的不够深刻。

好在这次的课程设计虽然遇到很多的困难,但终于是完成了。个中滋味确实是只有自己才明了啊。但也好在了这次的设计,让我对微机原理的理解又更深了一层,提高了我将理论与实际相结合和解决问题的能力。同时在这次课设的过程中,我要感谢好多给我帮助的同学们,是他们帮着我解决问题、教我如何分析,如何分成一个模块一个模块的编写程序,我才得以还算顺利的完成此次课程设计。同时通过此次的课程设计,给我感慨最深的莫过于:程序只有在经常的读和写中方可提高,这应该算是我此次课设的一大收获了,这也警醒了我以后学习编程语言,应该要多写多读程序。

12

武汉理工大学《微机原理与接口技术》课程设计说明书

参考文献

[1] 潘峰主编.微型计算机原理与汇编语言.第三版.西安: 电子工业出版社,2003 [2] 韩志军.《微机原理》课程的教学改革与实践[J]. 南京工程学院学报(社会科学

版).2003.12

[3] 杨素行《微型计算机系统原理及应用》,北京,清华大学出版社,2004年

[4]微机实验及课程设计教程(试用版2.0),东南大学《微机系统与接口》课程组,2009年2月

[5] 周佩玲.微型计算机原理及接口技术.电子工业出版社,2005 [6] 谭浩强.微型计算机原理及应用.清华大学出版社,2001

13

武汉理工大学《微机原理与接口技术》课程设计说明书

参考文献

[1] 潘峰主编.微型计算机原理与汇编语言.第三版.西安: 电子工业出版社,2003 [2] 韩志军.《微机原理》课程的教学改革与实践[J]. 南京工程学院学报(社会科学

版).2003.12

[3] 杨素行《微型计算机系统原理及应用》,北京,清华大学出版社,2004年

[4]微机实验及课程设计教程(试用版2.0),东南大学《微机系统与接口》课程组,2009年2月

[5] 周佩玲.微型计算机原理及接口技术.电子工业出版社,2005 [6] 谭浩强.微型计算机原理及应用.清华大学出版社,2001

13

本文来源:https://www.bwwdw.com/article/xvop.html

Top