“微机原理与系统设计”课程大作业.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
"微机原理与系统设计"课程大作业 各位同学: 虽然课程还没有进行到足以完成下面的作业,但教材给你们提供了很好的帮助,只要 自己自学一下,相信你们能够很好地完成作业,也可以锻练你们的能力,祝你们在非常 时期,得到长足的进步。 一、《微机原理与接口技术》编程入门 一般来说,用户设计的程序包含三个段:堆栈段(STACK)、数据段(DATA)和代码 段(CODE)。如果使用的堆栈单元较少,则也可以不定义堆栈段,这时会使用操作系统 所定义的堆栈段。如图1所示(分号";"之后的内容表示注释)。 图1 汇编语言程序结构 有了这种结构,用户编写程序时,只需要将要定义的变量填入DATA段,将编写的汇编 语言程序填入CODE段,使程序设计有了清楚的结构。参见教材p103 例4.2 。 二、随机数产生 计算机不会产生绝对随机的随机数,计算机只能产生"伪随机数"。 伪随机数生成算法实际上是采用了"线性同余法"。具体的计算如下: 其中A,C,M都是常数(一般会取质数)。当C=0时,叫做乘同余法。 问题1:编写子程序RANDOM,产生0~255之间的伪随机数;编写程序产生1000个随机数, 并统计其概率分布图;运行3次,验证随机性。 提示:为了产生0~255之间的伪随机数,取M=256,A=19,C=37。第一个数也需要 具备随机性,我们可以利用INT 21H的2CH号功能(参见教材P384)获取本机系统时间,取DL寄存器内容,作适当处理, 使其在0~255之间。 随机数可以用于扑克牌的洗牌中。每张扑克牌用一个字节表示,用低4位表示A~K用 1~13表示,D5~D4表示花色:00~11分别表示方块、草花、红桃、黑桃;用D7~D6表示 大小王,约定1000 0000B表示大王,0100 0000B表示小王。 洗牌之前将所有的牌按从小到大放在洗牌区(实际上是一块54字节的存储区域),然 后经过p次交换洗牌、q次倒排洗牌、r次块分割对插洗牌。(1)交换洗牌:产生2个随机 数(0~53,下同)n、m,将位置n与m的内容交换;(2)倒排洗牌:产生2个随机数n、 m,设n<m,将位置n到m的内容倒序排列;(3)块分割对插洗牌:产生2个随机数n、m, 设n<m,将位置n到m的内容移动到最后。p、q、r的取值可以通过试验确定。 问题2:设有4个人玩升级牌,设计子程序Shuffle完成洗牌,设计程序完成发牌(底 牌留6张),显示ABCD各人手中牌和底牌,重复多次,验证洗牌的有效性。进一步可以完 成多副牌的洗牌和发牌。 题目有什么不妥之处,可以给我发Email: ----------------------- "微机原理与系统设计"课程大作业全文共3页,当前为第1页。 "微机原理与系统设计"课程大作业全文共3页,当前为第2页。 "微机原理与系统设计"课程大作业全文共3页,当前为第3页。
- 粉丝: 84
- 资源: 9357
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助