计算机系统体系结构实验指导书Word文件下载.docx

上传人:b****3 文档编号:15912292 上传时间:2022-11-17 格式:DOCX 页数:34 大小:35.46KB
下载 相关 举报
计算机系统体系结构实验指导书Word文件下载.docx_第1页
第1页 / 共34页
计算机系统体系结构实验指导书Word文件下载.docx_第2页
第2页 / 共34页
计算机系统体系结构实验指导书Word文件下载.docx_第3页
第3页 / 共34页
计算机系统体系结构实验指导书Word文件下载.docx_第4页
第4页 / 共34页
计算机系统体系结构实验指导书Word文件下载.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

计算机系统体系结构实验指导书Word文件下载.docx

《计算机系统体系结构实验指导书Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机系统体系结构实验指导书Word文件下载.docx(34页珍藏版)》请在冰豆网上搜索。

计算机系统体系结构实验指导书Word文件下载.docx

实验是一个重要的教学环节。

一般情况下学生能够重视实验环节,对于编写程序上机练习具

有一定的积极性。

但是容易忽略实验的总结,忽略实验报告的撰写。

对于一名大学生必须严

格训练分析总结能力、书面表达能力。

需要逐步培养书写科学实验报告以及科技论文的能力。

拿到一个题目,一般不要急于编程。

按照面向过程的程序设计思路(关于面向对象的训练将

在其它后继课程中进行),正确的方法是:

首先理解问题,明确给定的条件和要求解决的问

题,然后按照自顶向下,逐步求精,分而治之的策略,逐一地解决子问题。

一、实验报告的基本要求:

一般性、较小规模的上机实验题,必须遵循下列要求。

养成良好的习惯。

姓名班级学号日期题目

i.问题描述

ii.设计简要描述

iii.程序清单(带有必要的注释)

iv.结果分析(原始图示,测试数据与运行记录,分析正确性;

v.调试报告:

实验者必须重视最后这两个环节,否则等同于没有完成实验任务。

这里可以体现个人特

色、或创造性思维。

具体内容包括:

测试数据与运行记录;

调试中遇到的主要问题,自己是

如何解决的;

经验和体会等。

二、实验习报告的提高要求:

阶段性、较大规模的上机实验题,应该遵循下列要求。

养成科学的习惯。

(1)问题描述

(2)需求和规格说明

(3)描述问题,简述题目要解决的问题是什么。

规定软件做什么。

原题条件不足时补全。

(4)概要设计:

功能模块的划分,ADT

(5)详细设计:

每部分模块的设计,含数据结构的设计,算法的描述(流程图或PDL)

a.设计思想:

存储结构(题目中限定的要描述);

主要算法基本思想。

b.设计表示:

每个函数的头和规格说明;

列出每个函数所调用和被调用的函数,也

可以通过调用关系图表达。

(6)实现注释:

各项功能的实现程度、在完成基本要求的基础上还有什么功能。

(7)用户手册:

即使用说明书。

(8)调试报告:

调试过程中遇到的主要问题是如何解决的;

设计的回顾、讨论和分析;

时间复杂度、空间复杂度分析;

改进设想;

实验1对指令操作码进行霍夫曼编码

一、实验目的

1.了解和掌握指令编码的基本要求和基本原理

二、实验内容

1.使用编程工具编写一个程序,对一组指令进行霍夫曼编码,并输出最后的编码结果

以及对指令码的长度进行评价。

与扩展操作码和等长编码进行比较。

问题描述以及问题分析:

我们举例说明此问题,例如:

有一组指令的操作码共分七类,它们出现概率如

下表所示:

P1P2P3P4P5P6P7

0.450.300.150.050.030.010.01

对此组指令进行HUFFMAN编码正如下图所示:

0.45

0.30

0.15

0.05

0.03

0.01

0.01

01

0.02

01`

0.10

0.25

0.55

1.00

图1

最后得到的HUFFMAN编码如下表所示:

P1

P2

P3

P4

P5

P6

P7

010110

111011110111110111111

1

2

3

4

5

6

最短编码长度为:

H=0.45*1+0.30*2+0.15*3+0.05*4+0.03*5+0.01*6+0.01*6=-1.95.

要对指令的操作码进行HUFFMAN编码,只要根据指令的各类操作码的出现概率构造

HUFFMAN树再进行HUFFAM编码。

此过程的难点构造HUFFMAN树,进行HUFFAM编

码只要对你所生成的HUFFMAN树进行中序遍历即可完成编码工作。

三、实例

观察上图1,不难看出构造HUFFMAN树所要做的工作:

1、先对各指令操作码的出现

概率进行排序,构造一个有序链表。

2、再取出两个最小的概率节点相加,生成一个生的节

点加入到链表中,同时从两表中删除此两个节点。

3、在对链表进行排序,链表是否只有一

个节点,是则HUFFAN树构造完毕,否则继续做2的操作。

为此设计一个工作链表(链表

的元素时类,此类的功能相当结构。

)、HUFFMAN树节点、HUFFMAN编码表节点。

具体

如下:

//huff_mantreepoint;

classhuff_p{

public:

huff_p*r_child;

//大概率的节点,即右子节点;

huff_p*l_child;

//小概率的节点,即左子节点;

charop_mask[3];

//指令标号;

floatp;

//指令使用概率;

};

//worklinkpoint

classf_min_p{

f_min_p*next;

floatp;

huff_p*huf_p;

/huff_mancodepoint

classhuff_code{

huff_code*next;

charop_mask[3];

charcode[N];

//huffman编码;

函数说明:

f_min_p*input_instruct_set();

//输入指令集子模块;

huff_p*creat_huffman_tree(f_min_p*head);

//构造huffman树;

f_min_p*fin_min(f_min_p*h);

//在工作链表中寻找最小概率节点函数。

f_min_p*del_min(f_min_p*h,f_min_p*p);

//在工作链表中删除最小概率节点函数。

voidinsert_n(f_min_p*h,f_min_p*p);

//在工作链表中插入两个最小概率节点生成的节点函

数。

huff_p*creat_huffp(f_min_p*p);

//生成HUFFMAN节点。

voidcreat_huffman_code(huff_p*h1,huff_code*h);

//生成huffman编码;

voidr_find(huff_p*p1,charcode[],inti,huff_code*h);

//遍历HUFFMAN树生成指令操作码的HUFFMAN编码。

voidoutput_huffman(huff_code*head);

//输出huffman编码;

voidcal_sort_length(huff_code*head);

//计算指令用huffman编码的平均编码字长

程序清单及注释:

#include<

iostream.h>

math.h>

#defineN8

//findtwominprogram;

//huff_mantreepont;

//大概率的节点;

//小概率的节点;

//huff_mancode

voidmain()

{

f_min_p*h,*h1;

huff_p*root;

huff_code*head,*pl;

int

h=input_instruct_set();

/*

p1=h;

while(p1)

cout<

<

p1->

p<

'

'

;

p1=p1->

next;

}

*/

h1=h;

root=creat_huffman_tree(h1);

head=newhuff_code;

head->

next=NULL;

creat_huffman_code(root,head);

output_huffman(head);

cal_sort_length(head);

pl=head->

while(pl)

deletehead;

head=pl;

pl=pl->

f_min_p*input_instruct_set()

f_min_p*head;

f_min_p*h;

h=newf_min_p;

h->

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

当前位置:首页 > 经管营销 > 财务管理

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

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