微机原理课设数据计算处理Word文档格式.docx

上传人:b****2 文档编号:14977911 上传时间:2022-10-26 格式:DOCX 页数:38 大小:195.27KB
下载 相关 举报
微机原理课设数据计算处理Word文档格式.docx_第1页
第1页 / 共38页
微机原理课设数据计算处理Word文档格式.docx_第2页
第2页 / 共38页
微机原理课设数据计算处理Word文档格式.docx_第3页
第3页 / 共38页
微机原理课设数据计算处理Word文档格式.docx_第4页
第4页 / 共38页
微机原理课设数据计算处理Word文档格式.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

微机原理课设数据计算处理Word文档格式.docx

《微机原理课设数据计算处理Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课设数据计算处理Word文档格式.docx(38页珍藏版)》请在冰豆网上搜索。

微机原理课设数据计算处理Word文档格式.docx

课程设计任务书

学生姓名:

朱谦专业班级:

指导教师:

石云工作单位:

题目:

计算程序

初始条件:

按下列要求编程:

(1)从键盘输入两个四位十六进制数。

(2)将这两个数以二进制形式输出。

(3)找出这两个数中的偶数,若有则以十进制输出,若无,输出“NO”。

(4)计算这两个数的平方和。

(5)数据的输入和结果的输出都要有必要的提示,且提示独占一行。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)设计任务及要求分析

(2)方案比较及认证说明

(3)系统原理阐述

(4)硬件设计课题需要说明:

硬件原理,电路图,采用器件的功能说明

(5)软件设计课题需要说明:

软件思想,流程图,源程序及程序注释

(6)调试记录及结果分析

(7)总结

(8)参考资料

(9)附录:

芯片资料或程序清单,软件演示屏幕拷贝图或硬件实物图

摘要1

1任务要求分析2

2方案比较及认证说明3

3系统原理4

3.1整体设计原理4

3.2DOS功能和BIOS功能调用说明4

4硬件及程序设计6

4.1硬件说明6

4.2主程序设计6

4.3功能一子程序设计9

4.4功能二子程序设计12

4.5功能三子程序设计14

4.6功能四子程序设计18

4.7完成退出程序20

5结果分析21

6程序调试过程中遇到的问题21

心得体会22

参考文献23

附录(源程序)................................................24

课程设计成绩评定表..........................................38

摘要

 本设计通过调用DOS0AH功能调用实现从键盘上输入两个四位的16进制数,然后通过逻辑移位指令实现16进制数转换成二进制数,为了判断输入16进制数的奇偶性,主要通过对数值某位操作,实现对数值奇偶性的判断。

转换成10进制数则通过算术运算指令DIV实现,输出则通过DOS单字符输出2号功能调用和多字符输出9号功能调用实现。

求平方和,通过使用算术运算指令MUL实现求平方,通过算术运算指令ADD实现求和运算,输出也是通过DOS功能和BIOS功能调用实现。

关键字算术运算指令,逻辑运算指令,字符字符串输出显示,DOS功能调用。

计算程序

1任务要求分析

本设计要求完成的功能由五部分组成。

第一要求从键盘输入两个4位的十六进制数,并在屏幕上显示出来。

因此需要思考如何实现十六进制数的输入和输出显示,要理解十六进制数数字和字母再输入和输出上的区别,与十进制数和二进制数输出的区别。

第二要求将输入的两个十六进制数转换成二进制数,在屏幕上显示输出。

因此要分析如何实现将十六进制转换成二进制,有哪些方法,选取最佳方法,是直接转换还是间接转换。

第三要求判断这两个已输入的十六进制数的奇偶性,将偶数输出,当没有偶数时要输出提示字符。

判断某个数的奇偶性,有多种方法,要选取直接,操作步棸尽量少的方法。

输出是有选择性的输出,及条件输出。

同样涉及字符和字符串的输出。

第四要求计算已输入的两个十六进制数的平方和,并输出显示。

首先要实现平方运算,再实现求和运算,平方运算即乘积运算,参与运算的数的位数不同,运算过程也不同。

由于显示结果的形式没有要求,所以可以选择十六进制形式输出,这样操作过程简单一些。

这里同样涉及字符或字符串的输出。

第五要求数据的输入和输出都有必要的提示语句,且独占一行。

这里主要要实现在每个功能实现之前显示这些提示语句,是以字符形式输出,还是以字符串形式输出,则要根据提示语句的长度来选择,最后还要设置功能完成后的退出标志。

功能要求结构图如图1所示。

图1功能要求结构图

2方案比较及认证说明

1)本设计过程中完成从键盘输入两个十六进制数功能有两种方案可以实现。

方案一:

调用DOS-21号中断1号和2号功能调用,单字符输入和单字符输出,逐个字符输入输出。

方案二:

调用DOS-21号中断0AH号功能调用,多字符输入输出。

由于要从键盘输入两个四位的十六进制数,为了简化步骤,应选择方案二来实现。

2)本设计过程中完成将十六进制数转换成二进制数功能有两种方案可以实现。

取一个十六进制数,先转换成十进制数,再通过除法指令,不断除以2,求余数。

运用逻辑左移或右移位指令,将十六进制数逐位移出,即可转换成二进制数。

由实际经验可知,若采用方案一则操作步骤较繁琐,而且算术运算相比较于逻辑移位运算较复杂。

而且逻辑移位操作结果更简单,更方便输出处理,因此应选择方案二。

为了简化程序,提高程序运行效率,在实际编程过程中应选择最佳方案。

3系统原理

3.1整体设计原理

由功能流程图可知,功能是顺序实现的。

所以整个功能实现可以通过一个主程序调用多个子程序实现。

首先通过DOS功能调用显示提示语句,然后调用从键盘输入两个十六进制数的子程序,子程序主要通过DOS单字符输入1号功能调用,单字符输出2号功能调用,多字符输出9号功能调用和过程中4CH号功能调用实现。

完成第一个功能后,第二个功能也是通过调用子程序实现,子程序主要是建立在逻辑移位运算符,DOS单字符输入1号功能调用,单字符输出2号功能调用,多字符输出9号功能调用,中4CH号功能调用和BIOS功能调用上实现。

第三项功能也是通过调用子程序实现,子程序主要通过对数值某位操作,实现对数值奇偶性的判断,输出则通过DOS单字符输出2号功能调用和多字符输出9号功能调用实现。

第四项功能也是调用子程序实现,子程序则是建立在算术运算指令上,实现平方,求和运算,结果通过调用DOS单字符输出2号功能调用实现。

整个程序结构,是一个顺序结构。

大部分功能实现过程都要引用DOS和BIOS功能调用。

3.2DOS和BIOS部分功能调用说明

1)DOS功能调用

(1)键盘输入一个字符并回显(1号功能)

输入参数无,返回结果AL=字符。

(2)显示一个字符,光标跟随字符移动(2号功能)

DL=待显字符的ASCII码,无返回结果。

(3)多个字符输出到屏幕显示(9号功能调用)

入口参数:

DS:

DX=输出字符缓冲区首地址。

出口参数:

无。

该功能对输出字符的个数没有要求,但输出字符串$结束。

2)BIOS功能调用

(1)设置光标位置(2号功能)

入口参数:

AH=2(功能号),BH=页号,DH=行号,DL=列号。

根据DX确定了光标位置。

(2)在当前光标位置写字符和属性(9号功能)

AH=9,BH=页号,AL=字符的ASCII码,BL=字符属性,CX=写入字符数。

出口参数:

(3)读当前光标位置(3号功能)

入口参数;

AH=3(功能号),BH=页号。

DH=行号,DL=列号,CX=光标大小。

(4)在当前光标位置写字符和属性(9号功能)

4硬件及程序设计

4.1硬件说明

本设计要求在MF2KP微机原理集成开发环境中调试运行,无其他硬件要求。

4.2主程序设计

主程序编程思路如下:

定义数据段,提示字符或字符串都定义在数据段,

在数据段内预留存储空间以备子程序调用过程中占用

定义堆栈段,尽量把堆栈预留空间设置大一点,因为

子程序调用过程中,要进行大量的反复保存各寄存器

内的内容。

然后定义代码段,给各个段寄存器分配段。

给每个段寄存器指定段地址。

然后调用各子程序实现

各项功能,在子程调用前设置好相关参数。

最后设置一

个程序执行完后的退出人际交互命令。

主程序流程图如图2所示。

图2主程序流程图

部分主程序如下(完整程序参见附录二):

datasegment

XDW?

YDW?

ZDW?

SDW?

DISNODB0AH,0DH,'

NO$'

BUFF3DB0AH,0DH,'

SHUCHUERJINZHISHU$'

BUFF4DB0AH,0DH,'

OUSHUSHIJINZHISHUCHU$'

BUFF5DB0AH,0DH,'

SHUCHUCHUPINGFANGHE$'

BUFF2DB0AH,0DH,'

IFYOUWANTTOQUIT,PLEASEPRESSQ/q$'

stridb'

inputanumber:

'

0ah,0dh,'

$'

;

显示提示文字

maxdb5

actlendb?

stringdb5dup(?

numdw2dup(?

);

保留输入数值的存储空间

dataends

stack1segment

dw256hdup(0);

保留堆栈空间

stack1ends

codesegment

assumeds:

data,ss:

stack1,cs:

code

start:

movax,data

movds,ax

callinput

movax,num

movnum+2,ax

movdl,0ah;

换行

movah,2;

单字符输出调用

int21h

callinput;

调用子程序input

-------------------------------------------十六进制转换成二进制

LEADX,BUFF3;

显示提示语句

MOVAH,9

INT21H

MOVDL,0AH;

MOVAH,2;

INT21H

MOVDL,0DH;

MOVAH,2;

MOVBX,num;

转换显示第一个数

MOVCX,8

XORDX,DX

MOVDH,5

CALLHEE12R

MOVBX,num+2;

转换显示第二个数

XORDX,DX

MOVDH,6

..................................

...................................

codeends

endstart

4.3功能一子程序设计

输入两个十六进制数编程思路:

通过DOS09H号功能调用显示提示语句字符串INPUT---inputanummber。

当从屏幕手动输入一个字符时,程序要首先要确定输入的数字是否合法,即输入的数字是否在0~9,A~F和a~f之间。

输入的数字合法时则保留在显示在屏幕上,若不合法则提示从新输入一个数值,直到正确输入为止。

由于要输入两个数,所以需要调用两次input子程序。

对于合法字符,若是在0~9之间,则将其加30h,转换成对应的ASCII码值,调用DOS单个字符输出显示2号功能调用,显示该数值。

当输入数值在A~F则将其加37H转换成对应的ASC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1