微机原理课程设计Word文档格式.docx

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

微机原理课程设计Word文档格式.docx

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

微机原理课程设计Word文档格式.docx

使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。

汇编程序把汇编语言翻译成机器语言的过程称为汇编。

作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。

高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。

在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。

现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。

汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。

1.2汇编语言特点

1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

2.保持了机器语言的优点,具有直接和简捷的特点。

3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

5.经常与高级语言配合使用,应用十分广泛。

 

2设计原理分析

2.1随机数的产生

真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。

而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。

我们可以这样认为这个可预见的结果其出现的概率是100%。

所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。

此程序的关键问题是如何产生一个1~100之间的随机整数(本程序中所涉及的数均指整数,以下不再赘述)。

我们可以调用BIOS的功能调用1AH号中断(MOVAH,0INT1AH)或者调用DOS系统功能调用21H号中断(MOVAH,2CHINT21H)取系统时间,DH:

DL=秒:

1/100秒。

将DX中的内容赋给AX,并将AX的高六位清零,然后AX除以100,则会产生0~99之间的余数。

2.2子模块

本程序共分为六个模块:

MAIN-------程序的入口点,程序运行后在DOS屏幕上显示主菜单,给出相关的操作提示,并调用RAN、GUESS、ENTER等子程序。

RAN-------调用相关的中断,取系统时间,产生一个0~99之间的随机数。

GUESS------本程序的重要模块,调用INPUT、PRINT、ENTER等子程序。

INPUT------用于玩家输入其所猜之数,并给出相关的输入提示。

PRINT------用于游戏结束时输入系统所产生的随机数。

ENTER-------用于回车换行

2.3设计流程图

3子程序分析

3.1RAN的主要算法

RANPROCNEAR

PUSHAX

PUSHDX

MOVAH,0;

读时钟计数器值

INT1AH

MOVAX,DX

ANDAH,3;

将高6位清零

MOVDL,100;

除以100,产生0~99余数,余数在AH中

DIVDL

MOVAL,AH

MOVAH,0

MOVRANDOM,AX;

将随机数保存于RANDOM中

MOVAH,09H

LEADX,MESS2

INT21H

CALLNEARPTRENTER

POPDX

POPAX

RET

RANENDP

3.2INPUT的主要算法

INPUTPROCNEAR

MOVBX,0

INL1:

MOVAH,01H

CMPAL,0DH

JZINEXIT

CMPAL,30H

JAEINL2

CMPAL,08H

JEINL1

CALLNEARPTRENTER

MOVAH,09H

LEADX,MESS9

INL2:

CMPAL,39H

JBEINL3

JMPINL1

INL3:

ANDAL,0FH

XCHGBX,AX

MOVCX,10

MULCX

ADDBX,AX

INEXIT:

MOVINNUM,BX

INPUTENDP

3.3ENTER的主要算法

ENTERPROCNEAR

PUSHAX

PUSHDX

MOVAH,02H

MOVDL,0DH

MOVDL,0AH

ENTERENDP

4源程序

4.1程序代码

DATASEGMENT

RANDOMDW?

;

用于保存产生的随机数

INNUMDW?

;

用于保存玩家输入的数

JISHUDW0;

用于保存玩家猜数的次数

MENUDW0

DB0DH,0AH,"

*----------------------------------------------------*"

DB0DH,0AH,"

**"

DB0DH,0AH,"

*MAINMENU*"

*S.STARTTHEGAME*"

*E.EXITTHEGAME*"

$"

TITLE1DB0DH,0AH,"

NUMBER-GUESSINGGAME"

0DH,0AH,"

MESS1DB0DH,0AH,"

NUMBER-GUESSINGGAMEBEGINS.$"

MESS2DB0DH,0AH,"

THERANDOMNUMBERHASBEENGENERATED.$"

MESS3DB0DH,0AH,"

PLEASEINPUTTHENUMBERYOUGUESS(DECIMAL,BETWEEM0AND99):

MESS4DB0DH,0AH,"

ITISBIGGER,PLEASEREGUESS:

$:

"

MESS5DB0DH,0AH,"

ITISSMALLER,PLEASEREGUESS:

MESS6DB0DH,0AH,"

CONGRATULATIONS,YOUGUESSED!

MESS7DB0DH,0AH,"

THERANDOMNUMBERIS$"

MESS8DB0DH,0AH,"

PLEASEINPUTYOURCHOICE:

DATAENDS

CODESEGMENT

MAINPROCFAR

ASSUMECS:

CODE,DS:

DATA

BEGIN:

PUSHDS

SUBAX,AX

MOVAX,DATA

MOVDS,AX

LEADX,TITLE1

INT21H

MOVDX,OFFSETMENU

LEADX,MESS8

MOVAH,01H

ML1:

CMPAL,'

S'

JEML2

ML2:

MOVJISHU,0

LEADX,MESS1

CALLNEARPTRRAN

CALLNEARPTRGUESS

ML3:

CMPAL,'

E'

JEEXIT

ML4:

MOVAH,09H

JMPML1

EXIT:

CALLNEARPTRENTER

MOVAH,4CH

MAINENDP

RANPROCNEAR

MOVAH,0;

INT1AH

MOVAX,DX;

ANDAH,3

GUESSPROCNEAR

LEADX,MESS3

ADDJISHU,1

GL:

CALLNEARPTRINPUT

MOVAX,INNUM

MOVBX,RANDOM

CMPAX,BX

JAGL1

JBGL2

LEADX,MESS6

LEADX,MESS7

CALLNEARPTRPRINT

JMPGEXIT1

GL1:

LEADX,MESS4

JMPGL

GL2:

CALLNEARPTRENTER

LEADX,MESS5

GEXIT1:

GEXIT2:

GUESSENDP

PRINTPROCNEAR

MOVAX,RANDOM

MOVBL,100

DIVBL

MOVBL,AH

CMPAL,0

JEPL1

MOVDL,AL

ORDL,30H

PL1:

MOVAL,BL

MOVBL,10

JEPL2

PL2:

MOVDL,BL

PRINTENDP

CODEENDS

ENDBEGIN

图4.1利用16位编译系统调试程序

图4.2游戏开始界面

图4.3摁S后开始游戏

图4.4猜数字正确

5心得体会

参考文献

[1] 

姚燕南.微型计算机原理.西安:

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

[2] 

艾德才.微型接口技术编程.北京:

清华大学出版社,2002

[3] 

冯博琴.微型计算机原理与接口技术.北京:

清华大学出版社,2000

[4]薛钧毅.微型计算机原理及应用.西安:

西安交通大学出版社,2005

[5]陈希林.汇编语言程序设计.北京:

高等教育出版社,2004

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

当前位置:首页 > 小学教育 > 语文

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

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