微机原理课设.docx

上传人:b****6 文档编号:5956733 上传时间:2023-01-02 格式:DOCX 页数:12 大小:106.16KB
下载 相关 举报
微机原理课设.docx_第1页
第1页 / 共12页
微机原理课设.docx_第2页
第2页 / 共12页
微机原理课设.docx_第3页
第3页 / 共12页
微机原理课设.docx_第4页
第4页 / 共12页
微机原理课设.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

微机原理课设.docx

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

微机原理课设.docx

微机原理课设

 

河北科技大学

课程设计报告

学生姓名学号:

专业班级:

电子信息工程3班

课程名称:

微型计算机原理及应用技术

学年学期:

2014—2015学年第1学期

同组人员:

指导教师:

2014年12月

课程设计成绩评定表

学生姓名

学号

成绩

专业班级

起止时间

2014-12-1至2015-1-1

设计题目

加法练习程序

 

指导教师:

年月日

目录

一、设计目的----------------------------------------1

二、设计任务与要求----------------------------------1

三、设计内容----------------------------------------2

四、实施效果----------------------------------------11

五、设计体会----------------------------------------11

六、参考资料----------------------------------------12

 

一、设计目的:

1、掌握汇编语言,会利用汇编语言编写一定功能的程序;

2、熟悉DOS环境以及在DOS下会调试编写好的汇编程序;

3、熟悉常用的DOS功能;

4、小组合作完成设计题目。

二、设计任务与要求:

1、设计加法练习程序演示程序。

2、程序设计基本要求:

1)菜单

内容包括:

①随机输入两个百位数内相加;②输入结果能判断显示结果是否正确;③退出。

2)两个加数显示

按照课程设计要求,两个加数是自由输入的,随机的。

3)结果显示

当输入两个加数的和时:

ⅰ正确输入提示正确,按R进行下一题;ⅱ错误输入提示错误,并输出正确,按R进行下一题。

4)按Q退出程序。

3、完成软件的技术要求。

4、程序设计的流程图。

5、你自己对小组完成设计题目所做的贡献。

在课程设计中我负责输入随机数字显示这部分程序的编写

 

三、设计内容:

1、使用的DOS功能:

1)显示字符串MOVAH,09H

INT21H;入口参数DS:

DX=缓冲区

2)键盘输入一个字符MOVAH,01H

INT21H;AL=输入的字符

3)终止当前程序并返回调用程序MOVAH,4CH

INT21H;AL=退出码

4)输入字符串MOVAH,0AH

INT21H;入口参数DS:

DX=缓冲区

2、使用的BIOS功能:

1)设置光标位置,出口参数DH=当前字符行号、DL=当前字符列号、CH=光标起始栅线:

MOVAX,03H;

INT10H

2)MOVAL,0AH;在光标位置显示字符

INT10H

3)MOVAH,0;从键盘读字符

INT16H

3、使用工具和软件:

计算机和MASM汇编软件

 

4、流程图:

 

5、程序与分析:

DATASEGMENT

SUMDB20

DB20DUP(0)

SUM1DB20;定义人为计算的空间

DB?

DB20DUP(?

SUM2DB20

DB20DUP(0);定义和的存储空间

BUFDB'YOUARETURE$'

BUF1DB'YOUAREwrong$'

BUF2DB'tips:

dangchulaiyigeshuhouqingansuiyijanchuxiayigeshu,goodyouluck$'

DATAENDS

STACKSEGMENT

DB30DUP(0)

STACKENDS;%堆栈定义空间

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVDX,OFFSETBUF2;%buf2存于dx中

MOVAH,9

INT21H;%调用九号功能;

Prot1:

MOVDI,OFFSETSUM

CALLHUANHANG;

CALLsuixian;%调用子程序

MOVDL,'+'

MOVAH,2;%调用2好功能显示字符串

INT21H

MOVAH,8

INT21H;%可以利用键盘输入的空隙来改变随机数

ANDAH,00H;%清零

MOVAX,9999

yanshi:

ADCAX,1;%带进位相加

JNZyanshi

CALLsuixian;HUIXIANSHITONGYANGDESHU

MOVDL,'='

MOVAH,2;%显示字符串

INT21H

MOVDX,OFFSETSUM1;开始接受键盘的字符

MOVAH,0AH%调用十号功能,将键盘输入的字符串写到内存缓冲区;

INT21H

ANDAH,00H;%清零

DECDI;%减一

DECDI;%减一

MOVAL,[DI]

INCDI;%加一

ADDAL,[DI];%取加

DAA;%加法调整

ADCAH,00H;%带进位相加

INCDI;下一个单元

MOV[DI],AL;AL放的是低位

INCDI;更高字节的数

MOV[DI],AH;结果存起来,用于比较高位放的是DI比较高的zijie

CALLHUANHANG;%换行

MOVSI,OFFSETSUM1;开始比较

INCSI

INCSI;%SI加2

MOVAL,[DI];最高位的DI

CMPAL,01H;

JNZLIANGWEI;%两位

ADDAL,30H;%变为ASCII

MOVBL,[SI];首个放在SUM1+2中

DECDI;回到低位

CMPAL,BL

JNZKAISHI:

%开始

INCSI

LIANGWEI:

%两位

DECDI

JMPXIA;%跳转

A:

JMPProt1

XIA:

MOVAL,[DI]

MOVCL,4

SHRAL,CL

ADDAL,30H;%高四位dl值转ascii

MOVBL,[SI];

CMPAL,BL

JNZKAISHI;%开始

INCSI

MOVAL,[DI]

ANDAL,0FH;%取dl低四位

ADDAL,30H;%转ascii

MOVBL,[SI]

CMPAL,BL

JNZKAISHI;%开始

MOVDX,OFFSETBUF;%dx取buf

MOVAH,9;%调用九号功能缓冲区字符串显示

INT21H

JIAN:

MOVAH,8;调用键盘

INT21H

CMPAL,'Q'

JZSTOP1

CMPAL,'q'

JZSTOP1

CMPAL,'R'

JZA

CMPAL,'r'

JZA

KAISHI:

%开始

CALLHUANHANG;换行显示错的

MOVDX,OFFSETBUF1

MOVAH,9

INT21H

POPDX

CALLHUANHANG;%换行

CALLJIEGUO;%结果

JMPJIAN;键盘

STOP1:

JMPSTOP

suixianPROC;随机显示函数

CALLRAND;开始调用随机数

MOV[DI],BL;随机数放到sum单元

MOVAL,BL

INCDI;%DI知道减一

MOVCL,4

SHRBL,CL;显示随机数最高位

ANDBL,0FH

ORBL,30H

PUSHAX

MOVDL,BL

MOVAH,2;%调用2号功能将dl里字符串显示出来

INT21H

POPAX

ANDAL,0FH;%显示随机数最低位

ORAL,30H

MOVDL,AL

MOVAH,2

INT21H

RET

suixianENDP

JIEGUOPROC;%显示结果

INCDI;显示高字节的数

MOVAH,[DI];高字节的给AH

CMPAH,01H;%与一比较

JNZProt2

MOVAH,[DI]

ADDAH,30H

MOVDL,AH

MOVAH,2

INT21H

Prot2:

%不等

DECDI

MOVBL,[DI]

MOVAL,[DI]

PUSHBX

MOVCL,4

SHRAL,CL

ADDAL,30H

MOVDL,AL

MOVAH,2

INT21H

POPBX

ANDBL,0FH

ADDBL,30H

MOVDL,BL

MOVAH,2

INT21H

RET

JIEGUOENDP

RANDPROC

PUSHCX

PUSHDX

PUSHAX

MOVAH,0

INT1AH;%时钟入口当前值为0

MOVAX,DX;

ANDAH,3

MOVDL,100

DIVDL

MOVCL,8

SHRAX,CL

MOVCH,10

DIVCH

MOVCL,4

SHLAL,CL

ORAH,AL

MOVBL,AH;组合BCD码已经产生,放在BL当中,AH改成了AL

POPAX

POPDX

POPCX

RET

RANDENDP

HUANHANGPROC

MOVDL,0DH

MOVAH,2;换行输出

INT21H

MOVDL,0AH

MOVAH,2

INT21H

RET

HUANHANGENDP

STOP:

MOVAH,4CH;%结束

INT21H

CODEENDS

ENDSTART

四、实施效果

(1)当程序运行时,随机两个数相加。

(2)输入错误结果时显示界面。

(3)输入正确时显示界面。

(4)当按住R进行下一题的显示。

(5)输入正确结果显示。

(6)按Q退出时界面。

 

五、设计体会

通过对这程序的制作,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。

通过查阅资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。

在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,当我看书查资料不能解决时,这是去找同学讨论一下,收获很大,可以使很多问题迎刃而解,直到问题最终解决。

不可否认,本程序存在不少缺点和不足,但通过这次课程设计的却找出了自己在学习上的不足,对以后的工作也有指导作用。

我相信在以后的学习中会克服这些不足,达到熟练掌握汇编语言的目的。

这次课程设计受益非浅,学到了不少知识,同时也认识到自身的不足,需要加强自身训练,学以致用,学会自我总结,吸取教训,积累经验,在学习和实践中来不断的提升自己。

六、参考资料

张雪兰、谭毓安、李元章:

《汇编语言程序设计——从DOS到windows》

朱金钧、麻新旗:

《微型计算机原理及应用技术》机械工业出版社

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

当前位置:首页 > PPT模板 > 中国风

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

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