文档库 最新最全的文档下载
当前位置:文档库 › 网络原理上机实验报告

网络原理上机实验报告

网络原理上机实验报告
网络原理上机实验报告

网络原理上机实验报告

书院:

班级:

学号:

姓名:

日期:2013.6.3

实验一基于Boson Netsim软件的路由器配置实验

1.实验目的:掌握路由器等设备的配置,掌握简单的组网技术。

2.实验要求:本实验要求学生自行构建一个网络拓扑,要求包括3个以上路由器,用于连接两个以太网,每个以太网至少包括1台主机;完成路由器、主机等设备的配置;使用RIP或OSPF来维护路由器的路由表。

(1)了解路由器、交换机等网络常用设备的配置方法;

(2)掌握CLI方式(命令行)下IOS命令的使用;

(3)掌握静态路由和动态路由(RIP、OSPF)的配置方法。

3.实验原理:

3.1 VLAN

VLAN(Virtual Local Area Network)即虚拟局域网,是为解决以太网的广播问题和安全性而提出的一种协议。VLAN 可以不考虑用户的物理位置,根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组。每个交换机端口只能被分配在一个VLAN 上。同一个VLAN 中的各端口将共享广播,而不在同一VLAN 上的端口间不共享广播。这样一个VLAN 内部的广播和单播流量都不会转发到其他VLAN 中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。VLAN的划分有四类:基于端口划分,基于MAC地址划分,基于网络层划分和根据IP组播划分。较常使用的是基于端口划分的VLAN,这种方法根据以太网交换机的端口来划分。

3.2 路由信息协议RIP

RIP是以跳数作为度量的距离向量协议,广泛用于因特网,是一种内部网关协议IGP,在自治系统AS内部执行路由功能。RIP规定,路由器每30s向外广播一个路由更新报文,接到广播的路由器将收到的信息添加到路由表中。每个路由器如此广播,最终网络上所有的路由器都会得知全部的路由信息。同时RIP规定从源到目的路径的最大跳数为15,跳数根据所经过的路由器个数来度量,也就是说网络中的路由器个数最多15个,如果超过15,则认为该目的网络不可达。所以RIP只适用于网络规模较小的环境。

4.实验步骤:

4.1 网络拓扑图:

4.2 配置路由实现网络的联通

设置路由1的以太网端口地址为192.168.1.2,和路由2的连接端口地址为192.176.2.1;路由2同路由1相连端口4地址设为192.176.2.2,另一端口同路由3连接地址为202.117.14.2;路由3同路由2相连端口地址为202.117.14.3,同PC2相连以太网端口地址为202.117.15.1;PC1的IP地址:192.168.1.223;PC2的IP地址为:202.117.15.14。使用动态Rip协议构建路由表,实现IP分组的转发。

4.2.1 Router 1:

其中:

表示配置r1路由端口地址4.2.2 Router 2

其中:

表示配置r2路由端口地址4.2.3 Router 3:

其中:

4.2.4 PC1的地址:

PC2的地址:

4.3 Ping的过程:

先使用PC2逐层ping路由端口,建立路由表,再直接ping PC1;然后PC1 ping PC2得出结果。成功ping通,实现了PC1和PC2通过3个路由器(使用rip协议)的通讯。实验成功。

5.实验总结:

在实验中由于对软件的不了解,使得输入命令时总是打错了命令导致出错,后来打顺了才好些。实验中,总是要考虑接口问题,这需要在配置之前,好好考虑一番。通过这次实验使我加深对路由器在实际工作中的配置的了解,能够在模拟状态下利用所学知识在相关软件配置一个网络,实现主机之间的通讯,学会了学以致用,,接触到了路由表的建立,对数据在网络中的传输有了清醒的认识,为以后在网络方面运用相关知识提供了锻炼机会。

实验二利用分组嗅探器(ethereal)分析协议HTTP 1.实验目的:实验目的:利用ethereal软件分析HTTP及其下层协议(TCP协议、IP协议等),了解网络中数据封装的概念,并掌握HTTP及TCP协议的工作过程。

2.实验要求:从ethereal截获的报文中提取并分析HTTP请求报文和HTTP应答报文;综合分析截获的报文,概括HTTP协议的工作过程;从截获报文中选择TCP建立连接和释放

连接的报文,分析各个字段的值并概括TCP协议的工作过程;从截获报文中分析IP协议的

工作过程和IP分组的格式。

(1)掌握计算机网络中数据封装的概念;

(2)掌握HTTP协议的基本原理及数据包格式;

(3)掌握TCP协议的连接建立、数据传输、连接释放的过程;

(4)掌握IP协议的基本原理和IP分组的格式。

3.实验原理:

Ethereal是一款免费的网络协议分析程序,支持Unix、Windows。借助这个程序,你既可以直接从网络上抓取数据进行分析,也可以对由其他嗅探器抓取后保存在硬盘上的数据进行分析。你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。Ethereal 有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。

要深入理解网络协议,需要仔细观察协议实体之间交换的报文序列。为探究协议操作细节,可使协议实体执行某些动作,观察这些动作及其影响。这些任务可以在仿真环境下或在如因特网这样的真实网络环境中完成。观察在正在运行协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer)。顾名思义,一个分组嗅探器捕获(嗅探)计算机发送和接收的报文。一般情况下,分组嗅探器将存储和显示出被捕获报文的各协议头部字段内容。图1为一个分组嗅探器的结构。

图1右边是计算机上正常运行的协议(在这里是因特网协议)和应用程序(如:web浏览器和ftp客户端)。分组嗅探器(虚线框中的部分)是附加计算机普通软件上的,主要有两部分组成。分组捕获库接收计算机发送和接收的每一个链路层帧的拷贝。高层协议(如:HTTP、FTP、TCP、UDP、DNS、IP等)交换的报文都被封装在链路层帧(Frame)中,并沿着物理介质(如以太网的电缆)传输。图1假设所使用的物理媒体是以太网,上层协议的报文最终封装在以太网帧中。

分组嗅探器的第二个组成部分是分析器。分析器用来显示协议报文所有字段的内容。为此,分析器必须能够理解协议所交换的所有报文的结构。例如:我们要显示图1中HTTP 协议所交换的报文的各个字段。分组分析器理解以太网帧格式,能够识别包含在帧中的IP 数据报。分组分析器也要理解IP数据报的格式,并能从IP数据报中提取出TCP报文段。然后,它需要理解TCP报文段,并能够从中提取出HTTP消息。最后,它需要理解HTTP 消息。

4.实验步骤:

4.1 启动Ethereal分组俘获器。选择正确的NIC,进行报文的捕获

4.2 开始进行抓包

4.3 点击stop停止抓包

4.4 切换到报文浏览的主界面进行分析操作

4.5 截图:

5.实验分析:

(第一行,第二行):IP为119.188.15.241的客户端向IP为115.154.87.104的服务端发送请求建立TCP 连接,服务端响应并发出响应信号。(第三行,第四行,第五行):客户端未收到响应信号而出错,使得TCP连接不成功。(第六行,第七行):重新建立TCP连接。(第11行,第17行):IP为123.125.65.210的客户端向IP为115.154.87.104的服务端发送请求下载数据的连接,服务器响应,同时客户端下载数据。(第21,行,第22行,第23行):数据传输成功后,TCP协议通过三次握手来断开TCP连接。

6.实验总结:

通过这次实验,学会了分析HTTP协议的连接并判断是否成功并掌握了它的基本原理;加深了对TCP协议的连接建立、数据传输、连接释放的过程的了解;掌握IP协议的基本原理和IP分组的格式。

实验三基于Socket的网络编程实验

1.实验目的:了解FTP协议的工作原理,掌握基于socket的网络编程的基本原理。

2.实验要求:基于Socket网络编程技术实现FTP客户端,能完成对FTP服务器的访问,并可执行上传和下载操作。

(1)掌握基于socket网络编程的基本知识;

(2)掌握FTP客户端和服务器端数据交换的方式和数据包格式。

3.实验原理:

通过模仿FTP协议,利用基于TCP或者基于UDP的Socket,实现客户端与服务端的请求响应和数据传输。服务端接收客户端发出的请求命令后做出响应,完成上传下载及其他文件操作功能。

4.实验步骤:

流程如下:

(1)服务端启动,等待用户连接

(2)客户端启动,请求与服务端连接

(3)服务端应答,与用户建立连接

(4)用户输入目录操作、文件上传下载等指令,服务端接收到指令后进行解析,作出相应的响应

(5)重复(4)的过程,直至用户输入quit指令要求离开,服务结束

5.实验结果:

6.实验总结:

通过这次实验,对socket的网络编程有了更清楚的认识,懂得了它怎么联网并对ftp 上的文件的上传,下载等操作,知道了怎么把书上的知识在实际中的运用。

7.实验代码:

#pragma comment(lib,"ws2_32")

#include

#include

#include

#include

#include

#include

#include"ftpClient.h"

using namespace std;

#define MENU "Welcome To The FTP Server,Please Input The Command And Enter!Such as: LIST,CWD,RETR,STOR,DELE,RMD,MKD"

//定义了在ftp服务器上能进行的操作

int main()

{

char Dir[256];

memset(Dir,NULL,256);

int returnNum;

char ip[16];

int port;

char test;

char userName[50];

memset(userName,NULL,50);

strncpy(userName,"anonymous",strlen("anonymous"));

char PWD[50];

char temp[512];

char Command[4];

//char Parameter[256];

cout<<"Please input the ip of the FTP server::";

cin>>ip;

cout<<"Do you want to change the port,Now the port is 21 :[Y/N]";

//使用命令端口21来连接到ftp服务器,在ftp协议下不用更改

cin>>test;

if(test=='Y'||test=='y')//连接到ftp服务器

{

cout<<"Please input the num of the port::";

cin>>temp;

port =(temp[0] - '0')*100+(temp[1] - '0')*10+(temp[2] - '0'); //将字符型转化为数值型

memset(temp,NULL,2);

}

else if (test=='N'||test=='n')

port = 21;

else

cout<<"Error"<

/************************************

用户登录模块

************************************/

ftpClient* client = new ftpClient(ip,port);

cout<<"Do you want to change USERNAME,Now is anonymous:[Y/N]"; //不更改时默认的是匿名登录

cin>>test;

if(test=='Y'||test=='y')

{

cout<<"UserName::";

cin>>userName;//输入登录名

}

else if (test=='N'||test=='n')

cout<<"UserName::anonymous"<

else

cout<<"Error Check input!"<

client->setCommand("USER",userName);//验证登录名

cout<

client->sendCommand(); //向ftp服务器发送用户名

returnNum = client->receiveCommand(); //从ftp服务器接收到的响应码,正确时应为331

if(returnNum == 331)

{

cout<<"PassWord::";

cin>>PWD;//输入密码

client->setCommand("PASS",PWD);

client->sendCommand();

returnNum = client->receiveCommand(); //从ftp服务器接收响应码,正确时应返回230

if(returnNum == 230) //用户已经正确登录到了ftp服务器

{

while(1)

{

cout<

cout<<"FTP::>";

cin>>Command;

if(strcmp(Command,"list")==0||strcmp(Command,"LIST")==0)

{

/************************************

连接控制,传输控制,命令传输(需使用

socketData连接的命令,如:LIST)

************************************/

client->setCommand("PASV");

client->sendCommand();

client->receiveCommand();

client->getPort();

client->setCommand("TYPE","I");

client->sendCommand();

client->receiveCommand();

client->interlizeDataSocket();

client->setCommand("LIST", ".");

cout<

client->sendCommand();

client->receiveCommand();

client->receiveList();

client->receiveCommand();

}

else if(strcmp(Command,"CWD")==0||strcmp(Command,"cwd")==0)

{

memset(Dir,NULL,512);

cout<<"Plase input the dir of your will(compelete dir)::"<

cin>>Dir;

client->setCommand("CWD ",Dir);

client->sendCommand();

client->receiveCommand();

}

else if(strcmp(Command,"retr")==0||strcmp(Command,"RETR")==0)

{

char* filename = new char[512];

memset(filename,NULL,512);

/************************************

下载模块

************************************/

client->setCommand("PASV");

client->sendCommand();

client->receiveCommand();

client->getPort();

client->setCommand("TYPE","I");

client->sendCommand();

client->receiveCommand();

client->interlizeDataSocket();

cout<<"Please input the name you want to download:";

cin>>filename;

client->setCommand("RETR ",filename);

client->sendCommand();

client->receiveCommand();

client->receiveData(filename);

client->receiveCommand();

delete filename;

}

else if(strcmp(Command,"stor")==0||strcmp(Command,"STOR")==0)

{

char* filename = new char[512];

memset(filename,NULL,512);

/************************************

上传模块

************************************/

client->setCommand("PASV");

client->sendCommand();

client->receiveCommand();

client->getPort();

client->setCommand("TYPE","I");

client->sendCommand();

client->receiveCommand();

client->interlizeDataSocket();

cout<<"Please input the name you want to UPload:";

cin>>filename;

client->setCommand("STOR ",filename);

client->sendCommand();

client->receiveCommand();

client->sendData(filename);

client->receiveCommand();

delete filename;

}

else if(strcmp(Command,"dele")==0||strcmp(Command,"DELE")==0) //进入删除文件的程序代码段

{

char* filename = new char[512];

memset(filename,NULL,strlen(filename));

cout<<"Please input the filename you want to Delete:";

cin>>filename;

client->setCommand("DELE ",filename);

client->sendCommand();

client->receiveCommand();

delete filename;

}

else if(strcmp(Command,"rmd")==0||strcmp(Command,"RMD")==0) //进入删除目录的程序代码段

{

memset(Dir,NULL,strlen(Dir));

cout<<"Please input the Direct you want to Delete:";

cin>>Dir;

client->setCommand("RMD ",Dir);

client->sendCommand();

client->receiveCommand();

}

else if(strcmp(Command,"mkd")==0||strcmp(Command,"MKD")==0) //进入修改文件的程序代码段

{

memset(Dir,NULL,strlen(Dir));

cout<<"Please input the Direct you want to Make:";

cin>>Dir;

client->setCommand("MKD ",Dir);

client->sendCommand();

client->receiveCommand();

}

else if(strcmp(Command,"QUIT")==0||strcmp(Command,"quit")==0) //进入退出文件的程序代码段

{

break;

}

else

{

cout<<"No such COMMAND!!";

}

}

}

}

else

cout<<"Error You can not login in."<

cout<<"Cleaning system resource"<

//delete [] userName;

//delete [] Direct;

//delete client;

cout<<"Exiting Goodbye"<

system("pause");

}

同济大学微机原理实验报告

《微机原理与接口技术》上机实验报告

《微机原理与接口技术》上机实验报告

实验报告:(包括目的、方法、原理、结果或实验小节等)。 一、实验目的 掌握简单并行接口的工作原理及使用方法。 二、实验内容 1、按下面图一简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。 2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。 3、按下面图二简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。 4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。 图一图二 三、实验中使用到的程序 对于简单并行输出接口: stack1 segment stack 'stack' dw 32 dup(0) stack1 ends data segment baseport equ 0ec00h-280h;实际基址 port equ baseport+2a8h;基址+偏移地址 data ends code segment assume ss:stack1,ds:data,cs:code start: mov ax,data mov ds,ax again: mov ah,1 int 21h

计算机网络原理实训报告

综合课程设计报告 计算机网络原理 学生姓名:张三、李四、王五、陈曦指导教师:董尼 所在系:电子工程系 所学专业:网络工程 年级:13级 2015 年7 月

目录 1. 引言 2. 实验目的 3. 实验原理 4. 实验任务及实验思路 4.1 实验任务 4.2实验思路 5. 数据包分析 5.1 第一次握手数据包分析 5.2 第二次握手数据包分析 5.3 第三次握手数据包分析 6. 结论 7. 参考文献

三次握手协议的分析 许静、陈雪妹、陈莲、邓明丽、张慧慧、朱慧慧 摘要:在竞争越来越激烈的今天,人们的生活工作节奏也在急剧加快,现在几乎所有的行业为了适应新的社会节奏,都需要通信帮助提高劳动生产效率,降低生产成本,增强单位的竞争能力。 TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后数据传送,最后拆除连接三个过程。本论文介绍了在通信过程中TCP建立连接的工作原理,着重介绍了三次握手过程及对抓包之后的报文分析。关键词:TCP、三次握手、报文

1引言 1.1 选题意义 本实训研究的是关于计算机网络技术基础知识的一门实训课程,通过本课程的学习,是学生掌握计算机网络的基础知识,了解数据通信的原理,熟悉计算机网络的组成与体系结构、TCP/IP、模型,在体系结构上突出学生技能训练和创新能力的培养。通过本课程的学习,学生能够掌握当前先进和实用的网络技术. 1.2报告研究目标 在Windows系统下分析一次通信过程中实施抓包,并对TCP数据包的每个组成部分在三次握手中的变化进行分析及对抓包之后的报文分析,掌握T CP 协议建立连接的工作原理;TCP部中各字段的含义及作用;能够分析TCP 协议的建立连接的过程;理解TCP会话的概念;三次握手的过程。 2实验目的 掌握TCP协议建立连接的工作原理;TCP首部中各字段的含义及作用;能够分析TCP协议的建立连接的过程;掌握三次握手的过程;掌握使用Wireshark 进行数据包捕获、过滤的方法。 3实验原理 TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序,适用于传输大批量的文件,检查是否正常传输TCP需要先建立连接才能进行通话。 TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。

编译原理实验报告

编译原理实验报告 班级 姓名: 学号: 自我评定:

实验一词法分析程序实现 一、实验目的与要求 通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符形式的源程序流转化为一个由各类单词符号组成的流的词法分析方法。 二、实验内容 根据教学要求并结合学生自己的兴趣和具体情况,从具有代表性的高级程序设计语言的各类典型单词中,选取一个适当大小的子集。例如,可以完成无符号常数这一类典型单词的识别后,再完成一个尽可能兼顾到各种常数、关键字、标识符和各种运算符的扫描器的设计和实现。 输入:由符合或不符合所规定的单词类别结构的各类单词组成的源程序。 输出:把单词的字符形式的表示翻译成编译器的内部表示,即确定单词串的输出形式。例如,所输出的每一单词均按形如(CLASS,VALUE)的二元式编码。对于变量和常数,CLASS字段为相应的类别码;VALUE字段则是该标识符、常数的具体值或在其符号表中登记项的序号(要求在变量名表登记项中存放该标识符的字符串;常数表登记项中则存放该常数的二进制形式)。对于关键字和运算符,采用一词一类的编码形式;由于采用一词一类的编码方式,所以仅需在二元式的CLASS字段上放置相应的单词的类别码,VALUE字段则为“空”。另外,为便于查看由词法分析程序所输出的单词串,要求在CLASS字段上放置单词类别的助记符。 三、实现方法与环境 词法分析是编译程序的第一个处理阶段,可以通过两种途径来构造词法分析程序。其一是根据对语言中各类单词的某种描述或定义(如BNF),用手工的方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应的状态矩阵,该状态矩阵同控制程序便组成了编译器的词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序的另外一种途径是所谓的词法分析程序的自动生成,即首先用正规式对语言中的各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程序所应进行的语义处理工作,然后由一个所谓词法分析程序的构造程序对上述信息进行加工。如美国BELL实验室研制的LEX就是一个被广泛使用的词法分析程序的自动生成工具。 总的来说,开发一种新语言时,由于它的单词符号在不停地修改,采用LEX等工具生成的词法分析程序比较易于修改和维护。一旦一种语言确定了,则采用手工编写词法分析程序效率更高。 四、实验设计 1)题目1:试用手工编码方式构造识别以下给定单词的某一语言的词法分析程序。 语言中具有的单词包括五个有代表性的关键字begin、end、if、then、else;标识符;整型常数;六种关系运算符;一个赋值符和四个算术运算符。参考实现方法简述如下。 单词的分类:构造上述语言中的各类单词符号及其分类码表。 表I 语言中的各类单词符号及其分类码表 单词符号类别编码类别码的助记符单词值

微机原理与接口技术实验报告

微机原理与接口技术实验报告

2

3

实验一:数据传送 实验学时:2 实验类型:验证 实验要求:必修 一.实验目的 1.学习程序设计的基本方法和技能,掌握用汇编语言设计、编写、调试和运行程序的方法; 学习用全屏幕编辑软件QEDIT.EXE建立源程序(.ASM文件); 学习用汇编软件MASM.EXE对源文件汇编产生目标文件(.OBJ文件); 学习用连接程序LINK.EXE对目标文件产生可执行文件(.EXE文件); 学习用调试软件TD.EXE调试可执行文件; 2.掌握各种寻址方法以及简单指令的执行过程。 二.实验器材 PC机 三.实验组织运行要求 1.利用堆栈实现AX的内容与BX的内容进行交换。堆栈指针SP=2000H,AX=3000H,BX=5000H; 2.汇编、调试、观察、记录结果; ⑴用QEDIT.EXE软件输入汇编语言源程序,以.ASM格式文件存盘; ⑵用MASM对源程序进行汇编产生二进制目标文件(.OBJ文件),再用连接程序LINK产生可执行文件(.EXE文件); ⑶用调试软件TD调试、运行程序,观察、记录结果。 四.实验步骤 1.进入子目录E:>\SY86后,利用QEDIT.EXE(简称Q)送入以下汇编语言源程序,并以M1.ASM文件存盘 ⑴汇编语言程序的上机过程 ①进入\SY86子目录 E:>CD\SY86 E:\SY86> ②进入QEDIT.EXE 编辑界面 E:\SY86> Q ③输入文件名*.ASM(如M1.ASM)后,输入源程序 源程序 DATA SEGMENT PARA PUBLIC’DATA’ ;数据段定义 DB 512 DUP(0) DATA ENDS STACK SEGMENT PARA STACK’STACK’ ;堆栈段定义 DB 512 DUP( ?) 4

计算机网络原理实验报告

多线程Web服务器 1实验目的: 用JA V A语言开发一个多线程的WEB服务器,它能并行服务于多个请求。发送网页文件,让网页文件能够通过在URL中制定端口号来被浏览器使用。 2实验代码及截图 class ConnectionThread extends Thread { Socket client; int counter; public ConnectionThread(Socket cl,int c) { client = cl; counter = c;

} public void run() // 线程体 { try { String destIP=client.getInetAddress().toString(); // 客户机IP地址 int destport=client.getPort(); // 客户机端口号 System.out.println("Connection "+counter+":connected to "+destIP+" on port "+destport+"."); PrintStream outstream=new PrintStream(client.getOutputStream()); DataInputStream instream=new DataInputStream(client.getInputStream()); String inline=instream.readLine(); // 读取Web浏览器提交的请求信息 System.out.println("Received:"+inline); if (getrequest(inline)) { // 如果是GET请求 String filename=getfilename(inline); File file=new File(filename); if (file.exists()) { // 若文件存在,则将文件送给Web 浏览器 System.out.println(filename+" requested."); outstream.println("HTTP/1.0 200 OK"); outstream.println("MIME_version:1.0"); outstream.println("Content_Type:text/html"); int len=(int)file.length(); outstream.println("Content_Length:"+len); outstream.println(""); sendfile(outstream,file); // 发送文件 outstream.flush(); } else { // 文件不存在时 String notfound="Not Found

Error 404-file not found

"; outstream.println("HTTP/1.0 404 no found");

计算机组成原理--实验报告

实验一寄存器实验 实验目的:了解模型机中各种寄存器结构、工作原理及其控制方法。 实验要求:利用CPTH 实验仪上的K16..K23 开关做为DBUS 的数据,其它开关做为控制信号,将数据写入寄存器,这些寄存器包括累加器A,工作寄存器W,数据寄存器组R0..R3,地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。 实验电路:寄存器的作用是用于保存数据的CPTH 用74HC574 来构成寄存器。74HC574 的功能如下: - 1 -

实验1:A,W 寄存器实验 原理图 寄存器A原理图 寄存器W 原理图连接线表: - 2 -

- 3 - 系统清零和手动状态设定:K23-K16开关置零,按[RST]钮,按[TV/ME]键三次,进入"Hand......"手动状态。 在后面实验中实验模式为手动的操作方法不再详述. 将55H 写入A 寄存器 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据 55H 置控制信号为: 按住STEP 脉冲键,CK 由高变低,这时寄存器A 的黄色选择指示灯亮,表明选择A 寄存器。放开STEP 键,CK 由低变高,产生一个上升沿,数据55H 被写入A 寄存器。 将66H 写入W 寄存器 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据66H

置控制信号为: 按住STEP脉冲键,CK由高变低,这时寄存器W 的黄色选择指示灯亮,表明选择W寄存器。放开STEP 键,CK 由低变高,产生一个上升沿,数据66H 被写入W 寄存器。 注意观察: 1.数据是在放开STEP键后改变的,也就是CK的上升沿数据被打入。 2.WEN,AEN为高时,即使CK有上升沿,寄存器的数据也不会改变。 实验2:R0,R1,R2,R3 寄存器实验 连接线表 - 4 -

编译原理实验报告

学生学号0120810680316 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称《编译原理》 开课学院计算机科学与技术学院 指导老师姓名何九周 学生姓名刘洋 学生专业班级软件工程0803 2010 —2011 学年第二学期

实验课程名称:编译原理 实验项目名称单词的词法分析程序设计实验成绩实验者刘洋专业班级软件0803 组别 同组者实验日期 2011 年 5 月 17日 第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的: 设计,编制并调试一个词法分析程序,加深对词法分析原理的理解。 实验要求: 在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写;上机时应随带有关的高级语言教材或参考书;要学会程序调试与纠错;每次实验后要交实验报告。 实验题目: 对于给定的源程序(如C语言或Pascal等),要求从组成源程序的字符行中寻找出单词,并给出它们的种别和属性——输出二元组序列。以便提供给语法分析的时候使用。要求能识别所有的关键字,标志符等,并且能够对出先的一些词法规则的错误进行必要的处理。 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) 实验原理: 由于这是一个用高级语言编写一个词法分析器,使之能识别输入串,并把分析结果(单词符号,标识符,关键字等等)输出.输入源程序,输入单词符号,本词法分析器可以辨别关键字,标识符,常数,运算符号和某些界符,运用了文件读入来获取源程序代码,再对该源程序代码进行词法分析,这就是词法分析器的基本功能.当词法分析器调用预处理子程序处理出一串输入字符放进扫描缓冲区之后,分析器就从此缓冲区中逐一识别单词符号.当缓冲区里的字符串被处理完之后,它又调用预处理子程序来处理新串. 编写的时候,使用了文件的输入和输出,以便于词法分析的通用型,同时在文件输出时,并保存在输出文件output文件中。 从左到右扫描程序,通过初始化:1为关键字;2为标志符; 3为常数;4为运算符或界符。 三、主要仪器设备及耗材 计算机

微机原理及应用实验报告

微机原理及其应用上机实验报告 实验一 程序调试实验(顺序结构程序设计) 一、实验目的: 1.学习及掌握汇编语言源程序的基本结构,明确程序中各段的功能和相互之间的关系。 2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。 3、熟悉和掌握DEBUG 常用命令的使用 二、实验要求: 1、上机前,要认真阅读前言和课本相关章节 2、上机前,画好流程图,编写好程序 3、上机时,注意出现的错误,记录下出错信息,翻译之 4、完成好实验报告 三、实验内容: 在内存TAB 开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤ X ≤ 15),求X 的平方值,并把结果存放在Y 单元中。 (2).分析 X 平方的值是tab 为首地址且x 的值为有效地址中的值。 data segment x db 8 y db data ends stack segment para'stack' db 100 dup(0) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax xor ax,ax

mov al,x lea si,tab add si,ax mov al,[si] mov y,al mov ah,4ch int 21h code ends end start (3).程序调试: 4.心得体会 了解了顺序结构,掌握了程序的运行,调试。 实验二分支程序设计 一、实验目的: 熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用方法。掌握分支程序设计、编写、调试和运行的方法。 二、实验要求: 1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序。 2、认真调试程序,对程序可能存在的所有分支都要进行运行,只有这样才能证明程序的正确性。 二、实验内容

网络综合实验报告(四)

大连理工大学 本科实验报告 课程名称:网络综合实验 学院(系):软件学院 专业:嵌入式 班级: 学号: 学生姓名: 2013年月日

大连理工大学实验报告 学院(系):软件学院专业:嵌入式班级: 姓名:学号:组:___ 实验时间:2013-11-04 实验室:C310 实验台: 指导教师签字:成绩: 实验四:交换机VLAN配置 一、实验目的 掌握VLAN的基本配置方法,掌握VLAN间路由的配置方法。 二、实验原理和内容 1、VLAN的基本工作原理 2、VLAN的基本配置方法和命令 三、实验环境以及设备 1、2台交换机、4台Pc机、双绞线若干 2、2台三层交换机、4台Pc机、双绞线若干 四、实验步骤(操作方法及思考题) 1、请在用户视图下使用“reset saved-configuration”命令和“reboot”命令分别将你们平台上 的两台交换机的配置清空,以免以前实验留下的配置对本实验产生影响。 2、VLAN基本配置:

PCA:VLAN2 PCD:VLAN3 PCC:VLAN2 PCB:VLAN3 10.1.1.2/2410.1.1.3/2410.1.1.4/2410.1.1.5/24 交换机B 图1 VLAN 基本配置 (1) 请按照图1组建网络实验环境。 (2) 将两台交换机的端口1和2做链路聚合,请把你所执行的配置命令写到实验报告 中。(7.5分) System Sysname SwitchB Interface ethernet 1/0/1 Speed 100 Duplex full Port link-type trunk Port trunk permit vlan 2 to 3 Interface ethernet 1/0/2 Speed 100 Duplex full Port link-type trunk Port trunk permit vlan 2 to 3 Interface Bridge-Aggregation 12 Interface ethernet 1/0/1 Port link-aggregation group 12 Interface ethernet 1/0/2 Port link-aggregation group 12 (3) 在两台交换机上做VLAN 配置,使得: a) 聚合的链路被用作trunk 链路。 b) 交换机A 上的端口3—12属于 VLAN 2、 端口13—24属于VLAN 3,其余的 端口属于VLAN 1。 c) 交换机B 上的端口3—5属于 VLAN 2、 端口6—8属于VLAN 3,其余的端口 属于VLAN 1。 请把你所执行的配置命令写到实验报告中。 Vlan 2 Port ethernet 1/0/3 to ethernet 1/0/12 Vlan 3 Port ehternet 1/0/13 to ethernet 1/0/24

网络原理实验报告实验八南华大学

网络原理实验报告 学院:计算机科学与技术学院专业: 姓名: 学号:

实验八路由器的基本配置 实验目的: 了解基本的路由器配置操作 实验步骤: 路由器的模式切换与交换的基本相同 1.(截图找不到了,最后才截图)配置路由器的名称 在全局模式下输入hostname XXXXX 可退出至特权模式下验证 2.配置路由器接口并查看接口配置 在全局配置模式下进入接口配置模式(这里注意路由器接口的写法与交换机有区别,可先用show命令查看一下) 在接口配置模式下配置接口IP地址:ip address 192.168.1.1 255.255.255.0 开启该端口No shutdown 回到特权模式查看配置

3.查看路由器的配置 Show version Show ip route Show running-config 注意show interface和show ip interface的区别

4. 配置静态路由 设置到子网10.1.1.0 的静态路由,采用下一跳的方式 在全局配置模式Ip route 10.1.1.0 255.255.255.0 192.168.1.2 设置到子网10.2.2.0 的静态路由,采用出站端口的方式 在全局配置模式Ip route 10.2.2.0 255.255.255.0 s4/0 配置完成以后,在特权模式下查看路由表和接口配置(思考,为什么不能显示路由)

5. 封装PPP协议 进入全局配置模式后,用interface serial x/y进入串口在此串口上封装PPP:encapsulation ppp 回到特权模式show 此串口。

编译原理实验报告一

实验一词法分析程序实现 一、实验目得与要求 通过编写与调试一个词法分析程序,掌握在对程序设计语言得源程序进行扫描得过程中,将字符流形式得源程序转化为一个由各类单词符号组成得流得词法分析方法 二、实验内容 基本实验题目:若某一程序设计语言中得单词包括五个关键字begin、end、if、then、else;标识符;无符号常数;六种关系运算符;一个赋值符与四个算术运算符,试构造能识别这些单词得词法分析程序(各类单词得分类码参见表I)。 表I语言中得各类单词符号及其分类码表 输入:由符合与不符合所规定得单词类别结构得各类单词组成得源程序文件。 输出:把所识别出得每一单词均按形如(CLASS,VALUE)得二元式形式输出,并将结果放到某个文件中。对于标识符与无符号常数,CLASS字段为相应得类别码得助记符;V AL UE字段则就是该标识符、常数得具体值;对于关键字与运算符,采用一词一类得编码形式,仅需在二元式得CLASS字段上放置相应单词得类别码得助记符,V ALUE字段则为“空". 三、实现方法与环境 词法分析就是编译程序得第一个处理阶段,可以通过两种途径来构造词法分析程序.其一就是根据对语言中各类单词得某种描述或定义(如BNF),用手工得方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应得状态矩阵,该状态矩阵连同控制程序一起便组成了编译器得词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序得另外一种途径就是所谓得词法分析程序得自动生成,即首先用正规式对语言中得各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程

微机原理实验报告

微机原理 实验报告 学校:湖北文理学院、班级:电子1413 姓名:杨仕浩 学号:2014111347 指导老师:吉向东

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 四、实验程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?)

TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL A DDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: M OV AL,[SI] MOV BL,[DI] ADC AL,BL AAA MOV [SI],AL DEC SI DEC DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05H AD3: ADD BYTE PTR [SI],30H ADD BYTE PTR [DI],30H DEC SI

网络原理实验报告CMS

1、内容管理系统(CMS)的基本概念 CMS是Content Management System的缩写,意为“内容管理系统”,指Web内容的管理。内容管理系统是一种位于WEB前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容管理解决方案重点解决各种非结构化或半结构化的数字资源的采集、管理、利用、传递和增值,并能有机集成到结构化数据的商业智能环境中,如OA,CRM等。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。这里指的"内容"可能包括文件、表格、图片、Flash动画、声像流、数据库中的数据甚至视频等一切你想要发布到Internet、Intranet以及Extranet网站的信息。 CMS其实是一个很广泛的称呼,从一般的博客程序,新闻发布程序,到综合性的网站管理程序都可以被称为内容管理系统。CMS具有许多基于模板的优秀设计,可以加快网站开发的速度和减少开发的成本 2、内容管理系统的分类和选择 根据其功能进行分类: 框架型:本身不包含任何应用实现,只是提供了底层框架,具体应用需要一定的二次开发,比如Cocoon,Vignette; 应用型:本身是一个面向具体类型的应用实现,已经包含了新闻/评论管理,投票,论坛,WIKI等一些子系统。比如:postNuke ,xoops等; 3、门户类内容管理系统:PostNuke 实验设备及软件: Windows XP操作系统 Apache Friends 1.0 PostNuke 0.726CN的Winzip压缩包 实验步骤: 1、获取XAMPP的压缩包文件解压缩至指定目录(d:\xampp) 2、修改Apache配置文件D:\xampp\apache\conf\httpd.conf 将:AddDefaultCharSet ISO-8859-1 改为:AddDefaultCharSet GB2312 3、双击“setup_xampp.bat”开始安装 选项:1 安装MOD_PERL,否则选择2 双击“apache_start”,启动Apache服务器 双击“mysql_start”,启动MySQL服务器

微机原理及应用实验报告

微机原理及应用实验报告标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

微机原理及应用实验报告 班级: 姓名: 学号: 中南大学 机电工程学院精密测控实验室

实验二软件程序设计 1.实验目的: 1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容: 1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2.、编写多字节加法程序并上机调试通过。 8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结 果存入以20H为起始地址的区域中(低字节在前)。 3.实验设备名称、型号: 4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单: 程序1、编写排序程序并上机调试通过。 已知8031内部RAM60H~69H单元中,依次存放了 FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程 将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次 后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。如 果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列 了。则可以退出循环,结束程序。 程序结构框图和程序代码如下:

网络系统集成与实践实验报告

实验一路由器交换机综合实验一 一、实验目的: 掌握NetSim模拟器的安装配置 掌握交换机的工作原理以及交换机各项基本配置。二、实验内容及测试结果: 您设计的拓扑图: 测试结果:

三、算法或核心技术思考体会: 在实验的过程中,让我体会到了,不仅仅要熟悉掌握命令,更重要的是在实验的过程中,必须要小心在小心和谨慎在谨慎,必须要注意配置的模式,,不论在其中的任何一个环节脱轨,就意味着你必须重新配置,一个不小心导致的是全部的重新开始,也许造成的就不是重新开始这样的小事故,所以我们必须在学习和工作的时候,打起精神,一定要认真仔细,有耐性。在实验的时候,应该先分析实训题目,看清楚实训要求,比如,第一个项目要求R1,R2,由于我的不细心没认真审题没有把路由器名字改为R1,R2,导致从做一遍,这就是教训。 四、附件(源代码)(可选) conf t Router(config)#hostname R1 R1(config)#interface e0 R1(config-if)#ip address 192.168.0.1 255.255.255.0 R1(config-if)#ip nat inside R1(config-if)#no shutdown

R1(config-if)#interface s0 R1(config-if)#ip address 222.1.1.1 255.255.255.0 R1(config-if)#clock rate 64000 R1(config-if)#ip nat outside R1(config-if)#no shutdown R1(config-if)#exit

网络原理实验报告(GBN)

网络原理实验报告 ——编程模拟GBN 姓名: 班级: 学号: 教师: 1.实验目的 运用各种编程语言实现基于Go-Back-N的可靠数据传输软件。 PS:这里使用的是JAVA语言 2.实验意义 通过本实验,使学生能够对可靠数据传输原理有进一步的理解和掌握。 3.实验背景 Go-Back-N的有限状态机模型表示如下图所示: (a) (b) 图为Go-Back-N的有限状态机模型(a)发送端(b)接受端 4.实验步骤 (1)选择合适的编程语言编程实现基于Go-Back-N的可靠数据传输软件。 (2)在实际网络环境或模拟不可靠网络环境中测试和验证自己的可靠数据传输软件。

5.实验环境 (1)实验语言:JAVA (2)实验平台:Eclipse (3)引用库函数:.net库、随机(Random)库、计时库(Timer)6.类概览与描述 (1)Sender类:继承于Thread(线程)类,模拟发送方的一切功能,主要功能函数有: A.Public void run()——启动函数,标识开始发送数 据包 B.Sender()——构造函数,分配并初始化窗口值 C.Public void getack(in tack)——ACK接收函数,接 收接收方返回的ACK并进行验证是否为期待的 ACK值(若不是,则重发) D.Public void time()——定时器函数,初始化定时, 计时并记录超时与否的状态 (2)Receiver类:继承于Thread(线程)类,模拟接收方的一切功能,主要功能函数有: A.Public void run()——启动函数,标识开始等待并 接收数据包 B.Void Receive(int data,Sender s)——数据包接收函 数,功能强大!主要包括:接收数据包,验证 数据包,判断与丢弃数据包等

编译原理标准实验报告

电子科技大学 实验报告 学生姓名:学号:指导教师: 实验地点:实验时间: 一、实验室名称:计算机学院软件工程实验室 二、实验项目名称:词法分析器的设计与实现 三、实验学时:4学时 四、实验原理 1.编译程序要求对高级语言编写的源程序进行分析和合成,生成目标程序。词法分析是对源程序进行的首次分析,实现词法分析的程序为词法分析程序。 2.词法分析的功能是从左到右逐个地扫描源程序字符串,按照词法规则识别出单词符号作为输出,对识别过程中发现的词法错误,输出相关信息。 3.状态转换图是有限有向图,是设计词法分析器的有效工具。 五、实验目的 通过设计词法分析器的实验,使同学们了解和掌握词法分析程序设计的原理及相应的程序设计方法,同时提高编程能力。 六、实验内容 实现求n!的极小语言的词法分析程序,返回二元式作为输出。 七、实验器材(设备、元器件) 1.操作系统:Windows XP

2.开发工具:VC6.0 3.普通PC即可 八、实验步骤 (1)启动VC6.0,创建空白工程项目。选择菜单中的“文件”->“新建”->“项目”,在弹出的对话框中,左边的“项目类型”框中,选择“Visual C++ 项目”,在右边框中,选择“空项目(.Net)”,在对话框下边,选择工程文件存放目录及输入名称,如Example1,单击“确定”。 (2)建立相应的单词符号与种别对照表; (3)根据状态转换图编写相应的处理函数; (4)完成词法分析器; (5)编译与调试以上程序; (6)生成相应的*.dyd文件,作为后面语法分析的输入文件。 九、实验数据及结果分析

可以对源程序进行词法分析,如果有错给出出错信息和所在行数,如果无错则生成二元式文件。 十、实验结论 本实验程序较好地完成了词法分析程序的设计与实现,能够对所给文法的程序进行词法分析,在没有词法错误的时候生成相应的二元式文件。该实验程序可一次性给出源程序中的词法错误。 十一、总结及心得体会 通过该实验,对词法分析程序的设计,以及运用C语言进行编程有了更深刻的理解,同时加深了自己对词法分析程序的原理的理解与掌握,提高了自己的动手能力。 十二、对本实验过程及方法、手段的改进建议 程序设计合理,代码可进一步优化。 报告评分: 指导教师签字:

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

计算机组成原理实验报告(运算器组成、存储器)

计算机组成原理实验报告 一、实验1 Quartus Ⅱ的使用 一.实验目的 掌握Quartus Ⅱ的基本使用方法。 了解74138(3:8)译码器、74244、74273的功能。 利用Quartus Ⅱ验证74138(3:8)译码器、74244、74273的功能。 二.实验任务 熟悉Quartus Ⅱ中的管理项目、输入原理图以及仿真的设计方法与流程。 新建项目,利用原理编辑方式输入74138、74244、74273的功能特性,依照其功能表分别进行仿真,验证这三种期间的功能。 三.74138、74244、74273的原理图与仿真图 1.74138的原理图与仿真图 74244的原理图与仿真图

1. 4.74273的原理图与仿真图、

实验2 运算器组成实验 一、实验目的 1.掌握算术逻辑运算单元(ALU)的工作原理。 2.熟悉简单运算器的数据传送通路。 3.验证4位运算器(74181)的组合功能。 4.按给定数据,完成几种指定的算术和逻辑运算。 二、实验电路 附录中的图示出了本实验所用的运算器数据通路图。8位字长的ALU由2片74181构成。2片74273构成两个操作数寄存器DR1和DR2,用来保存参与运算的数据。DR1接ALU的A数据输入端口,DR2接ALU的B数据输入端口,ALU的数据输出通过三态门74244发送到数据总线BUS7-BUS0上。参与运算的数据可通过一个三态门74244输入到数据总线上,并可送到DR1或DR2暂存。 图中尾巴上带粗短线标记的信号都是控制信号。除了T4是脉冲信号外,其他均为电位信号。nC0,nALU-BUS,nSW-BUS均为低电平有效。 三、实验任务 按所示实验电路,输入原理图,建立.bdf文件。 四.实验原理图及仿真图 给DR1存入01010101,给DR2存入10101010,然后利用ALU的直通功能,检查DR1、

编译原理实验报告

实验一词法分析程序实现 一、实验目的与要求 通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符形式的源程序流转化为一个由各类单词符号组成的流的词法分析方法。 二、实验内容 选取无符号数的算术四则运算中的各类单词为识别对象,要求将其中的各个单词识别出来。 输入:由无符号数和+,-,*,/, ( , ) 构成的算术表达式,如1.5E+2-100。 输出:对识别出的每一单词均单行输出其类别码(无符号数的值暂不要求计算)。 三、实现方法与环境 1、首先设计识别各类单词的状态转换图。 描述无符号常数的确定、最小化状态转换图如图1所示。其中编号0,1,2, (6) 表非终结符号<无符号数>、<余留无符号数>、<十进小数>、<小数部分>、<指数部分>、<整指数>及<余留整指数>,1,2和6为终态,分别代表整数、小数和科学计数的识别结束状态。 图1 文法G[<无符号数>]的状态转换图 其中编号0,1,2,…,6代表非终结符号<无符号数>、<余留无符号数>、<十进小数>、<小数部分>、<指数部分>、<整指数>及<余留整指数>,1,2和6为终态,分别代表整数、小数和科学计数的识别结束状态。 在一个程序设计语言中,一般都含有若干类单词符号,为此可首先为每类单词建立一张状态转换图,然后将这些状态转换图合并成一张统一的状态图,即得到了一个有限自动机,再进行必要的确定化和状态数最小化处理,最后据此构造词法分析程序。 四则运算算术符号的识别很简单,直接在状态图的0状态分别引出相应标记的矢线至一个新的终态即可。根据自己的习惯,也可以将其转换为状态矩阵形式。 2、词法分析程序编写 根据描述语言中各类单词的文法状态转换图或状态矩阵,利用某种语言(C语言或JA V A 语言)直接编写词法分析程序。 3、词法分析程序测试 用于测试扫描器的实例源文件中应有词法正确的,也应有错误的字符串,对于输入的测试用例的源程序文件,以对照的形式将扫描器的分析结果信息在输出文件中表示出来。四、参考资料 实现无符号数识别的参考方法:将设计的状态转换图直接转化为一张程序流程图,并在外层再增加一个以EOF为循环终止条件的while循环,即形成能连续识别各类单词的词法分析程序。 各类单词的编码建议如表1。 表1 单词的内部编码

相关文档
相关文档 最新文档