微机原理课程设计doc.docx

上传人:b****2 文档编号:3525419 上传时间:2023-05-06 格式:DOCX 页数:20 大小:20.09KB
下载 相关 举报
微机原理课程设计doc.docx_第1页
第1页 / 共20页
微机原理课程设计doc.docx_第2页
第2页 / 共20页
微机原理课程设计doc.docx_第3页
第3页 / 共20页
微机原理课程设计doc.docx_第4页
第4页 / 共20页
微机原理课程设计doc.docx_第5页
第5页 / 共20页
微机原理课程设计doc.docx_第6页
第6页 / 共20页
微机原理课程设计doc.docx_第7页
第7页 / 共20页
微机原理课程设计doc.docx_第8页
第8页 / 共20页
微机原理课程设计doc.docx_第9页
第9页 / 共20页
微机原理课程设计doc.docx_第10页
第10页 / 共20页
微机原理课程设计doc.docx_第11页
第11页 / 共20页
微机原理课程设计doc.docx_第12页
第12页 / 共20页
微机原理课程设计doc.docx_第13页
第13页 / 共20页
微机原理课程设计doc.docx_第14页
第14页 / 共20页
微机原理课程设计doc.docx_第15页
第15页 / 共20页
微机原理课程设计doc.docx_第16页
第16页 / 共20页
微机原理课程设计doc.docx_第17页
第17页 / 共20页
微机原理课程设计doc.docx_第18页
第18页 / 共20页
微机原理课程设计doc.docx_第19页
第19页 / 共20页
微机原理课程设计doc.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计doc.docx

《微机原理课程设计doc.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计doc.docx(20页珍藏版)》请在冰点文库上搜索。

微机原理课程设计doc.docx

微机原理课程设计doc

 

课程设计说明书

 

课程名称:

微机原理课程设计

 

题目:

数制转换实验

 

院系:

理学院

 

专业班级:

应用物理13-1

 

学号:

2013305188

 

学生姓名:

李立才

 

指导教师:

李声

 

2016年6月17日

 

安徽理工大学课程设计(论文)任务书

 

理学院

院系

信计

教研室

学号

2013305188学生姓名

李立才

专业(班级)

应物13-1

设计题目

数制转换实验,小写转大写实验

在masmforwindows上经debug调试可运行;可满足设计要求。

为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为

ASCII

码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数

显示。

为了解小写字母和大写字母在计算机内的表示方法,

并学习如何进行转换,

编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏

幕上。

 

作查阅相关材料,完成设计,完成设计报告

 

 

1.综合论证,确定设计方案。

2.查阅资料,完成设计。

3.完成设计报告。

 

 

 

[1]

姚燕南,薛钧义主编.《微型计算机原理》第四版

[M].西安电子科技大学出版社.

[2]

潘峰主编.《微型计算机原理与汇编语言》第三版

[M].电子工业出版社.

[3]

雏逢兴编著.《计算机硬件技术基础》[M],高等教育出版社.

 

指导教师签字教研室主任签字

 

年月日

 

安徽理工大学课程设计(论文)成绩评定表

 

学生姓名:

李立才

 

学号:

 

2013305188

 

专业班级:

应物

 

13-1

课程设计题目:

数制转换实验

 

指导教师评语:

 

成绩:

 

指导教师:

 

年月日

 

1.课程设计实验目的与要求1

从键盘输入数据并显示1

 

将键盘输入的小写字母转换成大写字母1

 

2.课程设计实验内容1

从键盘输入数据并显示1

将键盘输入的小写字母转换成大写字母2

 

3.课程设计实验流程图2

从键盘输入数据并显示2

 

将键盘输入的小写字母转换成大写字母3

 

4.课程设计实验程序4

从键盘输入数据并显示4

将键盘输入的小写字母转换成大写字母8

 

5.课程设计实验运行结果12

从键盘输入数据并显示12

 

将键盘输入的小写字母转换成大写字母12

 

6.课程设计实验心得13

 

1.课程设计实验目的与要求

 

从键盘输入数据并显示

1.掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。

2.掌握子程序定义和调用的方法。

3.掌握循环移位指令的用法和无符号数比较大小的方法。

 

将键盘输入的小写字母转换成大写字母

 

1.了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。

2.熟练掌握汇编语言程序设计的方法及上机步骤

3.掌握将小写字母转换为相应的大写字母的方法

4.掌握子程序的设计方法

5.掌握DOS功能的调用方法

 

2.课程设计实验内容

 

从键盘输入数据并显示

 

为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏

幕上。

课程设计要求进行小写字母到大写字母的转换。

其实字母大小写的区别在

于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。

在判

断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在

61H~7AH内)之后,决定判断是加上还是减去ASCII码值

 

将键盘输入的小写字母转换成大写字母

 

第一步是实现小写字母向大写字母的转换,主要利用小写字母比大写字母大20H的关系。

第二部要键盘输入,显示输出。

 

3.课程设计实验流程图

 

从键盘输入数据并显示

 

图3-1实验流程图

 

将键盘输入的小写字母转换成大写字母

 

图3-2实验流程图

 

4.课程设计实验程序

 

从键盘输入数据并显示

 

datasegment

;数据区定义开始

strrdb'pleaseinputhexadecimalnumber:

$'

errrdb'thisisanerrornumber!

$'

;数据区定义结束

dataends

 

stacksegmentstack

;堆栈区定义开始

db100dup()

;堆栈区定义结束

stackends

 

codesegment

;代码区定义开始

assumecs:

code,ds:

data,ss:

stack

start:

movax,data

movds,ax

movax,stack

movss,ax

;设定区址

 

movcx,00h

xorbx,bx

callgetnum

;按提示输入四个字符,存入BX中

 

movcx,10h

;用于下面的loopnext处,因为BX共有16位

 

callnewline

;转到新行

movdl,0ah

movah,02h

int21h

;换行

movdl,0dh

movah,02h

int21h

;回车

 

next:

rolbx,1

;把BX所存字符的二进制的最高位移到最低位movdl,bl

anddl,01h

;获取最低位

adddl,30h

;将最低位转成数字,即字符'0'或'1'movah,02h

int21h

;即将之前BX的最高位输出到屏幕loopnext

;循环,将BX的每一位都输出来

 

movah,4ch

int21h

;完成

 

;----------------------------------------

 

;功能:

接受四个字符,必须输入0-9A-F,否则提示错要重输

 

;假设先后输入1234,则最后BX为0x1234getnumprocnear

;子过程getnum开始

 

again:

pushcx

movcl,4

shlbx,cl

;把BX左移四位,空出了低四位

 

again1:

callnewline

;转到新行

leadx,strr

movah,09h

int21h

;输出"pleaseinputhexadecimalnumber:

"

 

movah,01h

int21h

;接受输入字符

 

cmpal,46h

jadone

;如果字符比'F'大则转到done

 

cmpal,41h

jbnext1

;如果字符比'A'小则转到next1

 

subal,07h

;如果字符在'A'和'F'间,则减七

;提示:

数字1-9为0x31-0x39,字符A-F处理后为0x3A-0x3F,正好接在

数字后

jmptt

 

next1:

cmpal,39h

jadone

;如果字符比'9'大则转到done

 

tt:

cmpal,30hjbdone

;如果字符比'0'小则转到done

 

subal,30h

;减0x30,于是原字符0-9A-F变成相应的十六进制数0x0-0xF

 

movah,00h

addbx,ax

;把0x0-0xF存到bx的低四位

 

popcx

inccx

cmpcx,04h

;是否循环了四次jett2

;是的话就跳到tt2结束jmpagain

;否则跳到again再来一次

 

done:

callnewline

leadx,errr

movah,09h

int21h

;如果输入的字符不符合要求,输出错误提示jmpagain1

;转到again1再次接受输入

 

tt2:

ret

;子过程getnum结束

 

getnumendp

 

;----------------------------------------

 

;功能:

输出回车换行符,即转到新行

newlineprocnear

;子过程newline开始movdl,0ah

;设输出字符为0x0A,即换行符movah,02h

int21h

 

movdl,0dh

;设输出字符为0x0D,即回车符movah,02h

int21h

 

ret

;子过程newline结束

newlineendp

;----------------------------------------

 

;代码区定义结束

codeends

;指定执行起点endstart

 

将键盘输入的小写字母转换成大写字母

 

DATASSEGMENT

MESSAGEDB'Welcometothesystem!

',13,10,13,10

DB'Thefunctionoftheprogramischangingsmallletterstocapital

letters.',13,10

DB'Ifyouentercapitallettersornumberstherewillbenochanges.',13,10,13,10

 

DB'Pleaseenterastring.',13,10,'$'

CRDB13,10,'$';回车换行

STRINGDB100

DB0

DB80DUP(0)定;义缓冲区

AGAINDB'Doyouwanttotryagain(YorN)',13,10,'$'

ERRORDB'ERROR!

',13,10,'Pleaseentertherightcommomds.',13,10,'$错';

误提示

DATASENDS

 

STACKSSEGMENT

DB200DUP()

STACKSENDS

 

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,SS:

STACKS

 

START:

HEAD:

MOVAX,DATAS

MOVDS,AX

LEADX,MESSAGE输出;提示语

MOVAH,09H

INT21H

LEADX,STRING

MOVAH,0AH

INT21H;把字符串输入到BUF区

LEADX,CR

MOVAH,09H

INT21H;以上为回车换行

LEASI,STRING+2把;字符串首地址存入BX

MOVCL,STRING+1把;字符个数存CX

MOVCH,0

 

NEXT1:

MOVDL,[SI]

CMPDL,'a'

JBNEXT2

CMPDL,'z'

JANEXT2

;ASCII码小于

a和大于

z的跳过,其余的减

32

SUBDL,20H

;大小写字母的

ASCII码差

32

 

NEXT2:

MOVAH,02H

INT21H

INCSI;BX自加,判断下一个字符

DECCX;CX自减,最终将是0

JNENEXT1;CX非零时,跳回NEXT1

MOVDX,OFFSETCR输出;回车换行

MOVAH,09H

INT21H

JMPEXIT

 

OVERFLOW:

LEADX,CR

MOVAH,09H

INT21H

LEADX,ERROR

MOVAH,09H

INT21H

 

;错误提示

 

EXIT:

LEADX,CR

MOVAH,09H

INT21H

LEADX,AGAIN提;示是否再试一次

MOVAH,09H

INT21H

 

MOVAH,01H

INT21H

PUSHAX

LEADX,CR

MOVAH,09H

INT21H

POPAX

CMPAL,'Y'

JZHEAD

CMPAL,'y'

JZHEAD

CMPAL,'N'

JZOVER

CMPAL,'n'

JZOVER

JMPOVERFLOW

 

OVER:

MOVAH,4CH

INT21H

 

CODESENDS

ENDSTART

 

5.课程设计实验运行结果

 

从键盘输入数据并显示

 

图5-1实验运行结果

 

将键盘输入的小写字母转换成大写字母

 

图5-2实验运行结果

 

6.课程设计实验心得

 

通过这次课程设计,使我认识到自己理论知识掌握不够,对于许多指令和一些基本的编程方法都掌握不清晰。

为了顺利完成课程设计,我重新拿起课本,用心阅读,问题才一一解决。

由此看来,知识只有在实践中才能真正掌握。

难怪人们说汇编语言编程必须在使用中慢慢理解。

本学期做了许多微机原理的实验,开始以为这次课程设计会像前几次实验

简单。

直到要编写程序实现的时候,才发现自己对汇编程序的了解确实还不够,

尤其是编程方面的能力有待提高。

在不断地再次学习和理解过程中,我慢慢掌握

了更多汇编语言的应用知识,最终写出了大小写字母转换的程序。

把编写好的程序输入软件时候,也出现了许多小问题,比如没有定义变量

等等。

归纳起来都是因为编程掌握不牢固,写程序没有条理,加上自己粗心大意

的恶习依旧没改正造成的,以后需要努力改正。

总的来说,这次课程设计,自己受益匪浅。

不但加固了微机原理知识的理解,而且加强了对汇编语言的应用能力。

同时,非常感谢指导老师与同学给予我在编程方面的帮助,让我能够完成这次设计。

 

参考文献

 

[1]姚燕南,薛钧义主编.微型计算机原理(第四版)[M],西安:

西安电子科技大学出版社,2003

[2]潘峰主编.微型计算机原理与汇编语言(第三版)[M],西安电子工业出版

社,2003

[3]雏逢兴编著.计算机硬件技术基础[M],北京:

高等教育出版社,1998

[4]王永山等编著.微型计算机原理与应用[M],西安:

电子科技大学出版社,1999

[5]舒贞权等编著.Intel8086/8088系列微型计算机原理[M].西安:

西安交通大学出版社,1993

[6]HwangS,ChoiS.IronbirdGroundTestforTiltRotorUnmannedAerialVehicle[J].

InternationalJournalofAeronauticalandSpaceScience.2010,11(4):

313-318

[7]MillerM,NarkiewiczJ.Tiltrotormodellingforsimulationinvariousflight

conditions[J].JournalofTheoreticalandAppliedMechanics.2006,44(4):

881-906

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2