微机原理课程设计.docx

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

微机原理课程设计.docx

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

微机原理课程设计.docx

微机原理课程设计

课程设计说明书

 

课程名称:

微机原理课程设计

题目:

数制转换实验

 

院系:

理学院

专业班级:

应用物理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.掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。

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

 

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

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

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

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

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

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

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

2.课程设计实验容

2.1从键盘输入数据并显示 

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

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

其实字母大小写的区别在于他们的ASCII码围,它们之间的转换其实就是加减相应的ASCII码值。

在判断输入的字母是大写的还是小写的(即判断输入符号ASCII码在41H~5AH还是在61H~7AH)之后,决定判断是加上还是减去ASCII码值

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

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

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

3.课程设计实验流程图

3.1从键盘输入数据并显示

图3-1实验流程图

 

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

图3-2实验流程图

 

4.课程设计实验程序

4.1从键盘输入数据并显示

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为0x1234

getnumprocnear

;子过程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,30h

jbdone

;如果字符比'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

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

DATASSEGMENT

MESSAGEDB'Welcometothesystem!

',13,10,13,10

DB'Thefunctionoftheprogramischangingsmallletterstocapitalletters.',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-1实验运行结果

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

图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].International JournalofAeronauticalandSpaceScience.2010,11(4):

313-318

[7]MillerM,NarkiewiczJ.Tiltrotormodellingforsimulationinvariousflightconditions[J].Journal ofTheoreticalandAppliedMechanics.2006,44(4):

881-906

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

当前位置:首页 > 经管营销 > 经济市场

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

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