随机数产生器设计报告Word文档下载推荐.docx
- 文档编号:14457786
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:19
- 大小:81.02KB
随机数产生器设计报告Word文档下载推荐.docx
《随机数产生器设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《随机数产生器设计报告Word文档下载推荐.docx(19页珍藏版)》请在冰豆网上搜索。
2.1程序功能说明
本程序需在DOS下运行。
程序开始运行,程序完成初始化,输出提示信息。
程序产生随机数1,随机数1转化为16进制ASC码并显示。
此时选择运算方式,输入“+”执行加法运算,输入“-”则执行减法运算。
程序产生随机数2,随机数2转化为16进制ASC码并显示。
随机数1和随机数2完成已选择的运算方式,显示运算结果。
2.2程序要点说明
本程序的要点在于随机数的产生,并显示。
将其转化为16进制数,并完成运算。
在运算中符合了16进制数的算法要求。
3功能及程序设计
3.1主程序流程图及结构图
本程序流程图
如图3-1所示。
图3-1程序流程图
程序结构图如图3-2所示。
图3-2程序结构图
3.2程序说明
(1)读取数据段的内容
(2)调用随机数产生子程序产生0~100内的随机数
(3)调用MACT子程序,将随机数转换为16进制表示的ASCII码字符
(4)判断并调用+或-进行运算.
如果是“+”则跳转到加法运算程序段,此时在调用随机数产生子程序和MACT子程序将得到第二个16进制数b显示在屏幕上,a和b进行16进制加法运算。
如果是“-”则跳转到减法运算程序段,此时在调用随机数产生子程序和MACT子程序将得到第二个16进制数b显示在屏幕上,a和b进行16进制减法运算,如果有借位则显示“Dividererror”,如果没有借位位,则将计算结果显示出来。
3.3子程序功能说明
3.3.1MACT子程序说明
MACT子程序如下:
MCATPROC;
将随机数转换为16进制表示的ASCII码字符子程序
PUSHAX
pushbx
PUSHCX
PUSHDX
CMPBX,9
JAS1
PUSHBX
movax,bx
movbl,5
divbl
cmpah,3
jaevb1
movwww,1
jmpvn1
vb1:
movwww,0
vn1:
popdx
popcx
popbx
popax
ADDBL,30H
MOVAA,BL
MOVAA+1,'
$'
LEADX,AA
MOVAH,9
INT21H
JMPs3
s1:
MOVCL,4
MOVAL,0
SHLBX,CL
CMPBH,9
JBEV1
SUBBH,9
ADDBH,40H
JMPMM1
V1:
ADDBH,30H
MM1:
MOVAA,BH
POPBX
ANDBL,0FH
jaevb2
jmpvn2
vb2:
vn2:
CMPBL,9
JBETT1
SUBBL,9
ADDBL,40H
JMPRR1
TT1:
RR1:
MOVAA+1,BL
MOVAA+2,'
s3:
POPDX
POPCX
POPAX
RET
MCATENDP
此程序主要是将2位16进制数的高四位转换成ASCLLL码并且显示在屏幕上,然后将低四位也转换成ASCLLL码并且显示在屏幕上,这时屏幕上显示的数就是随机产生的16进制数。
3.3.2RAND子程序说明
RANDPROC
STI
MOVAH,0;
读时钟计数器值
INT1AH
MOVAX,DX;
清高6位
ANDAH,3
MOVDL,101;
除101,产生0~100余数
DIVDL
MOVBL,AH;
余数存BX,作随机数
POPDX
RANDENDP
此程序利用读取系统时钟时间,并将时间除以101得到的余数便是我们需要的0-100的随机数,并将随机数保存在bl中。
3.3.3字符串显示子程序说明
用DATASEGMENT指令定义数据段,格式如下:
DATASEGMENT
CCDB'
+'
wwdb'
-'
GGDB'
='
IIDB0DH,0AH,'
AADB5DUP(?
)
0
ghhdb'
0'
0dh,0ah,'
bnmdw0
DATAENDS
其中‘‘内为要在界面显示的内容,其结尾的那一个字符必须是‘$’,因此必在其结尾加上‘$’才不会使程序出错。
这样数据段定义好了,在后面的程序中调用改数据段。
能在相应位置显示该数据段。
字符串显示程序流程图如图3-2所示。
图3-2字符串显示子程序流程图
4调试结果及分析
程序执行“+”运算如图4-1。
图4-1
程序执行“+”运算产生进位如图4-2。
图4-2
程序执行“-”预算如图4-3。
图4-3
程序执行“-”运算被减数小于减数如图4-4。
图4-4
5心得体会
通过本次汇编语言课程设计,使我深深的感受到了汇编语言的乐趣。
汇编虽然是低级语言,但是正是因为低级,这也恰恰是它的优点,更接触底层硬件。
通过汇编,可以更好的了解计算机系统的工作原理,而且把平时学到的理论知识和实践相结合,促进了课程的学习。
在编程的过程中,通过自己思考和查找资料使自己受益匪浅。
汇编的过程中也遇到了一些问题,由于自己的粗心,某些符号的书写错误,也大大的降低了自己的工作效率。
这次的课程设计使我对汇编语言编程的方法和技巧有了一定的掌握,加深了自己对8086CPU的寄存器,存储器的理解;
基本掌握了8086的指令系统;
汇编语言程序设计的基本方法,包括顺序结构程序设计,分支结构程序设计,循环结构程序设计;
并涉及到了一部分宏汇编语言的技术;
同时对BIOS的中断调用有了更深层次的理解。
虽然本次课程设计整体有一些难度,但是,这段时间的学习和问题的解决,对自己专业知识的掌握有着非常重要的促进作用。
通过这次课程设计,我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握。
最大的收获是更清晰了如何有条理的编程。
第一个就是流程图,原来不以为然的事现在觉得非常的有必要。
第二就是编程顺序,要写一个功能很复杂的程序首先写那些自己可以很快完成的较简单的内容,比如先编写产生随机数的程序,这样既可以使编程变得更有条理,而且对心态也是很有帮助的。
一步一步的完成相应的要求会使自己的心情倍感舒爽而不是一直未能达到要求时的迷茫。
总之,这次的课程设计给了我一个难得的锻炼的机会,通过自己综合运用课堂上学到的知识,提升了自己解决问题的能力,同时也感谢老师为我们的耐心答疑及指导。
6参考文献
[1]王爽.汇编语言.北京:
清华大学出版社,2013.9,12-20
[2]沈美明.IBM-PC汇编语言程序设计.北京:
清华大学出版社,2001.8,10-15
[3]沈美明.IBM-PC汇编语言程序设计例题习题集.北京:
清华大学出版社,1991,7-11
[4]李真香.汇编语言课程设计案例精编.北京:
中国水利水电出版社,2004,60-65
[5]钱晓捷.汇编语言程序设计学习及指南.湖北:
华中科技大学出版社,2002,5-9
[6]马力妮.80x86汇编语言程序设计.北京:
机械工业出版社,2004,32-40
[7]程学先,徐东平.汇编语言程序设计.武汉:
武汉理工大学出版社,2003,42-45
[8]黄明,梁旭.汇编语言程序设计习题详解.北京:
机械工业出版社,2004,17-20
附录:
源代码
STACKSEGMENT
DB200DUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVCX,20
CALLRAND;
产生一随机数
CALLMCAT;
将随机数转换为16进制表示的ASCII码字符
MOVAX,BX
CMPwww,0;
WWW=0?
JEA1;
执行'
CMPwww,1;
www=1?
JEA2;
A1:
MOVDL,CC;
显示'
MOVAH,2
产生另一随机数
addbx,0fh
MOVDL,GG;
ADDAX,BX
cmpax,0
jneyjw1
leadx,ghh
movah,9
int21h
jmpqq1
yjw1:
JMPB1
A2:
MOVDL,WW;
MOVAH,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 随机数 产生器 设计 报告