当前位置:文档之家› 广工 计算机组成原理 实验报告

广工 计算机组成原理 实验报告

广工 计算机组成原理 实验报告
广工 计算机组成原理 实验报告

计算机学院计算机科学与技术专业班______组、学号

姓名协作者___________ 教师评定

实验题目基础汇编语言程序设计

一、实验目的:

(1)学习和了解TEC-XP+教学实验系统监控命令的用法;

(2)学习和了解TEC-XP+教学实验系统的指令系统;

(3)学习简单的TEC-XP+教学实验系统汇编语言程序。

二、实验设备与器材:

TEC-XP+教学实验系统,仿真终端软件。

三、实验内容:

1、学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC;

2、学习使用WINDOWS界面的串口通讯软件;

3、使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;

4、使用A命令编写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行改程序,用T、P命令单步运行并观察程序单步执行的情况。

四、实验步骤:

一、实验具体操作步骤:

1、准备一台串口工作良好的PC机;

2、将TEC-XP放在实验台上,打开实验箱的盖子,确定电源处于断开状态;

3、将黑色电源线一端接220V交流电源,另一端插在TEC--XP试验箱电源插座上;

4、取出通讯线,将通信线的9芯插头接在试验箱的串口“COM1”或“COM2”上,另一端接到PC机的串口上;

5、将TEC-XP实验系统左下方的6个黑色控制器开关置为001100,,控制开关

的功能在开关上、下方有标识;开关拨向上方表示“1”,拨向下方表示“0”,“x”表示任意,其他实验相同;

6、打开电源,船形开关和5v电源指示灯亮。

7、在PC机上运行PCEC16.EXE文件,直接回车。

8、按一下“RESET”按键,再按一下“START”按键在主机上显示:TEC—2000 CRT MONITOR

Version 1.0 April 2001

Computer Architectur Lab,Tsinghua University

Programmed by He Jia

>

二、实验注意事项:

几种常见的工作方式(开关拨到上方表示为1,拨到下方为0)

三、仿真终端软件的操作成功运行PCEC16.EXE的界面

四、实验示例:

1.用R命令查看寄存器内容或修改寄存器的内容

1)在命令行提示符状态下输入:

R↙;显示寄存器的内容

注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入:

R R0↙ :修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可由一个或数个空格

主机显示:

寄存器原值:_

在该提示符下输入新的值0036

再用R命令显示寄存器的内容,则R0的内容变为0036。

测试结果如下图:

3.用命令修改存储器内容

在命令提示符状态下输入:

E2000↙

屏幕显示:

2000 地址单元的原有内容:光标闪烁等待输入

输入 0000

依次改变地址单元2001~2005的内容为:1111 2222 3333 4444 5555 注意:用E命令连续修改内存单元的值时,每修改完一个,按一下空格

键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E 命令。

5.用A命令花不如一段汇编源程序,主要是想累加器送入数据和进行运算,

执行程序并观察运行结果。

1)在命令行提示符状态下输入:

A 2000↙:表示该程序从2000H(内存RAM区的起始地址)地址开始

屏幕将显示:

2000:

输入如下形式的程序:

2000:MVRD R0,AAAA ;MVRD与R0之间有且只有一个空格,其他指令相同

2002:MVRD R1,5555

2004:ADD RO,R1

2005:AND R0,R1

2006:RET ;程序的最后一个语句,必须为RET指令

2007:(直接敲回车键,结束A命令输入程序的操作过程)若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。

2)用U命令反汇编刚输入的程序

在命令行提示符状态下输入:

U 2000↙

在相应的地址会得到输入的指令及其操作码

注:连续使用不带参数的U命令时,将从上一次反汇编的最后一条语句之后接着继续反汇编。

3)用G命令运行前面键入的源程序

G 2000↙

程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。

4)用P或T命令,但不执行这段程序,观察指令执行结果

在命令行提示符状态下输入:

T 2000↙

寄存器R0被赋值为AAAAH

T↙

寄存器R1被赋值为5555H

T↙

做加法运算,和放在R0,R0 的值变为FFFFH

T↙

做与运算,结果放在R0,R0的值变为5555H

用P命令执行过程同上

注:T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序依次执行完成。T,P命令每次执行后均显示所由通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。运行结果如下:

例1:

设计一个小程序,从键盘上接收一个字符并在屏幕上数出显示该字符。

<1> 在命令行提示符状态下输入:

A 2000↓

屏幕将显示:

2000:

输入如下形式的程序:

2000:IN 81 :判断键盘上是否按了建

2001:SHR R0 :即串行口是否有输入的字符

2002:SHR R0

2003:JRNC 2000 :未输入完则循环测试

2004:IN 80 :接收该字符

2005:OUT 80↓:在屏幕上输出显示字符‘6’

2006:RET↓:每个用户程序都必须用RET指令结束

2007:↓:(按回车即结束输入过程)

注:在十六位机中,基本I/O接口的地址是确定的,数据口的地址为80,状态口的地址为81。

<2>用“G”命令运行程序

在命令提示符状态下输入:

G 2000↓

执行上面输入的程序

光标闪烁等待输入,用户从键盘入字符后,屏幕会显示该字符。

该例建立了一个从主存2000H地址开始的小程序。这种方式下,所有的数字都约定使用16进制数,故数字后不用跟字符H。每个用户程序的最后一个语句一定为RET汇编语句。因为监控程序是用类似子程序调用方式使实验者的程序投入运行的,用户程序只有用RET语句结束,才能保证程序运行结束时能正确返回到监控程序的断点,保证监控程序能继续控制教学机的运行过程。

测试如下图:

五、实验心得

学会了联机使用TEC-XP教学实验系统和仿真终端软件PCEC,教学实验系统监控命令的用法,了解了TEC-CP教学实验系统的指令系统,试着做汇编程序设计,在尝试中发现汇编程序设计的方法,理解指令代码的意义及程序所能实现的功能,并对基础汇编语言程序设计有了初步的了解,增加了自己学习的兴趣和提高了自己的动手操作的能力。

计算机学院网络工程专业1班______组、学号

姓名协作者___________ 教师评定____________ 实验题目脱机运算器实验

一、实验目的:

1、深入了解AM2901运算器的功能与具体用法。

2、深化运算器部件的组成、设计、控制与使用等知识。

二、实验设备与器材:

TEC-XP+教学实验系统

三、实验说明和原理:

脱机运算器实验,是指让运算器从数学计算机整机中脱离出来,此时,他的全部控制与操作均需通过两个12位的卫星开关来完成,这就谈不上执行指令,只能通过开关,案件控制数学机的运算器完成指定的运算功能,并通过指示灯观察运算器结果。

下面先把前边几讲过的,与该实验直接有关的结论性内容汇总如下。

一、12位微型开关的具体控制功能分配如下:

A口,B口地址:送给AM2901器件用于选择源与目的操作数的寄存器编号:

I8-I0:选择操作数来源,运算操作功能,选择操作数处理结果和运算器输出内容的3组3位的控制码:

SCI,SSH和SST:用于确定运算器最低位的进位输入,移位信号的入/出和怎样处理AM2901产生的状态标志位的结果。

二、开关位置说明:

做脱机运算器实验时,要用到提供24位控制信号的微动开关和提供16位数据的拔动开关。微动开关是红色的,一共有三个,一个微动开关可以提供12位的控制信号,三个开关分别标有SWI1 micro switch 、SW2 micro switch 和SW3 micro switch;数据开关是黑色的,左边的标有SWH的是高8位,右边的标有SWL的是

低8位。微动开关与控制信号对应关系见表(从左到右):

三、开关检测

红色微动开关是该实验系统使用寿命最短的器件,开关好坏的检测方法比较简单,用户将五个控制机器工作方式的开关置于“1XX000”,从左面其第二个和第三个的开关处于任意位置,然后将两个未动开关上的24小纽子依次置为1(开关拨到上方为1),看对应的指示灯是否亮,如果有一个或数个指示灯不亮,则一般是开关除了问题。

四、实验内容:

在脱机方式下,对于给定指令分析其执行过程中运算步骤,通过对AM2901运算器所需的控制信号的设置,使之完成运算,并核对运算结果。

五、实验步骤:

在脱机方式下,通过设置SW1,SW2,SW3各微码字段和数据开关,可实现多种运算。以实现AAAAH->R1为例说明操作过程。

1、按照下表中的微码和数据开关,对运算器的功能进行设置。操作步骤如下:

5、将教学机左下方的5个拨动开关置为11XX00(单步,16位,脱机);先按一

下”RESET”按键,再按一下”START”按键,进行初始化.

6、通过16个数据开关设置立即数AAAAH。

7、通过SW1、SW2、SW3设置各微码。

3、按一次START键,立即数XXXXH置入R1,通过显示灯查看按START键后的输出。

若要进行其他操作:

(1)程序设置SW1、SW2、SW3数据开关,通过显示灯观察输出。

(2)然后按START键执行操作。通过显示灯观察按START键后的输出,检查运算结果是否正确。

4、接下来,按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中:其中,D1取为0101H,D2取为1010H,通过两个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果及状态标志.

注:用*标记的运算,表示D1,D2的数据是由拨动开关SW给出的,开关给的是二进制的信号,注意二进制和十六进制间的转换.

六、思考题:

问题:分析比较各指令按START键前和按START键后的值,是否有不同并解释。

前后结果有些不同,按”START”按键之前,ALU输出的是计算结果,参照ALU的操作周期的时序可知A,B口数据锁存是在时钟的下降沿,通用寄存器的接收是在低电平,所以要想寄存器接收ALU的计算结果必须按一次”START”按键.

七、实验心得:

了解了AM2901运算器的功能与具体用法并深化运算器部件的组成、设计、控制与使用等知识。一开始因为不了解按钮的实际作用和功能,一直出现错误的结果,经请教同学再进一步把指导书看懂后,最终实现了本实验的操作。深刻让我理解到做实验前要好好进行预习工作,上课时认真听老师的讲解和指导,对于遇到自己没办法解决的事可以请教老师或同学,学会对问题的分析,找寻错误的原因,分析遇到的各种现象,判断结果是否正确。

计算机学院网络工程专业班______组、学号

姓名协作者___________ 教师评定_____________ 实验题目存储器部件教学实验

一、实验目的:

8、熟悉ROM芯片和RAM芯片在功能和使用方法等方面的相同和差异之处;学习用编程器设备向EEPROM芯片内写入一批数据的过程和方法。

9、理解并熟悉通过字、位扩展技术实现扩展存储器系统容量的方案。

10、了解静态存储系统使用的各种控制信号之间正常的时序关系。

11、了解如何通过读、写存储器指令实现对58C65ROM芯片的读、写操作。

12、加深理解对存储器部件在计算机整机系统中的作用。

二、实验设备与器材:

TEC-XP+教学计算机

三、实验说明与原理:

1、内存储器原理

内存储器是计算机中存放正在运行中的程序和相关数据的部件。在教学计算机存储器部件设计中,出于简化和容易实现的目的,选用静态存储器芯片实现内存储器的存储体,包括唯读存储区和随读写存储区两部分,ROM存储区选用4片长度8位、容易8KB的58C65芯片实现,RAM存储区选用2片长度8位、容量2KB 的6116芯片实现,每2个8位的芯片合成一组用于组成16位长度的内存字,6个芯片被分成3组,其地址空间分配关系是:0-1777h用于第一组ROM,固化监控程序,2000-2777h用于RAM,保存用户程序和用户数据,其高端的一些单元作监控程序的数据区,第二组ROM的地址范围可以由用户选择,主要用于完成扩展内存容量的教学实验。

地址总线的低13位送到ROM芯片的地址线引脚,用于选择芯片内的一个存储字。用于实现存储字的高位字节的3个芯片的数据线引脚、实现低位字节的3

个芯片的数据线引脚分别连接在一起接到数据总线的高、低位字节,是实现存储器数据读写的信息通路。数据总线要通过一个双向三态门电路与CPU一侧的内部总线IB相连接,已完成存储器、接口电路和CPU之间的数据通讯。

2、扩展教学机的存储空间

四、实验内容:

1、完成存储器扩展的教学实验,需为扩展存储器选择一个地址,并注意读写和等控制信号的正确状态。

2、用监控程序的D、E命令对存储器进行读写,比较RAM(6116)、EEPROM(28系列芯片)、EPROM(27系列芯片)在读写上的异同。

3、用监控程序的A命令编写一段程序,对RAM(6116)进行读写,用D命令查看命令是否正确。

4、用监控程序的A命令编写一段程序,对扩展存储器EEPROM(28系列芯片)进行读写,用D命令查看结果是否正确;若不正确,分析原因,改写程序,重新运作。

(2)实验步骤:

1.检查FPGA下方的标有“/CE”的四组插针均是左边两个短接;

2.检查RAM(6116)上方的标有“/WE”的插针应是左边两个短接;

3.RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。

1>用E命令改变内存单元的值并用D命令观察结果。

<1>在命令行提示符状态下输入:

E 2020↙

屏幕将显示: 2020 内存单元原值:

按如下形式键入:

2020 原值:2222(空格)原值:3333(空格)原值:4444(空格)原值:5555* <2>在命令行提示符状态下输入:

D2020↙

屏幕将显示从2020内存单元开始的值,其中2020H~2023H的值为:

2222 3333 4444 5555

<3>断电后重新启动教学实验机,用D命令观察内存单元2020~2023的值。

会发现原来置入到这几个内存单元的值已经改变,用户在使用RAM时,必须每次断电重新

启动后都要重新输入程序或修改内存单元的值。

0000 FFF7 0000 FFFF

2>用A命令输入一段程序,执行并观察结果。

<1>在命令行提示符状态下输入:

A 2000↙

屏幕将显示:2000:

按如下形式键入:

2000:MVRD R0,AAAA

2002:MVRD R1,5555

2004:AND R0,R1

2005:RET

2006:↙

<2>在命令行提示符状态下输入:

T 2000↙

R0的值变为AAAAH,其余寄存器的值不变。

R0=AAAA

T↙

R1的值变为5555H,其余寄存器的值不变。

R0=AAAA R1=5555

T↙

R0的值变为0000H,其余寄存器的值不变。

R0=0000

<3>在命令行提示符状态下输入:

G 2000

运行输入的程序。

R0=0000 R1=5555

<4> 在命令行提示符状态下输入:

R↙

屏幕显示:

R0=0000 R1=5555 R2=…

采用单步和连续两种方式执行一段程序,查看结果,断电后发生什么情况?答:断电前,单步和连续结果一样;断电后,单步可以运行,但前后结果不一样,断电后,连续不可运行。

RAM芯片可直接用A命令键入程序,但断电会丢失,要再次调适该程序必须重新输入,对那些较长的程序或经常用到的程序可通过交叉汇编,在上位机生成代码文件,每次加电启动后不用重新输入,只需通过PCEC16将代码文件传送给下位机即可。

4、将扩展的ROM芯片插入标有“EXTROMH”和“EXTROML”的自锁紧插座,要注意芯片插入的方向,带有半圆形缺口的一方朝左插入。

如果芯片插入方向不对,会导致芯片烧毁,然后锁紧插座。

5、将扩展芯片下方的插针按下列方式短接:将标有“/MWR”和“RD”的三个插针左面两个短接,将标有“/MWR”“/OE”“GND”的三个插针左边两个短接。

6、将扩展芯片上方标有EXTROMH和EXTROML的“/CS”信号用自锁紧线短接,然后短接到MEMDC 138芯片的上方的标有“4000-5fff”地址单元。

注意:标有/CS的圆孔针与标有MEM/CS的一排圆孔针中的任意一个都可以用导线相连;连接的地址范围是多少,用户可用的地址空间就是多少。

7、将标有“DataBus 15-8”和“DataBus 7-0”的数据总线的指示灯下方的插针短接。

8、将标有“DataBus 15-8”和“AdressBus 7-0”的数据总线的指示灯下方的

插针短接。

下面以2764A为例,进行扩展EPROM实验。

9、EPROM 是紫外线可擦除的电可改写的只读存储器芯片。在对EPROM进行重写

前必须先擦除并判断芯片是否为空,再通过编程器进行编程。

<1>将芯片0000~001F的内存单元的值置成01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

<2>将变成好的芯片插在扩展芯片的高位,低位不插,按上面的提示插好插针。(1)用D命令看内存单元0000~001F的值。可以看到内存单元的值为:01FF 02FF 03FF 04FF~~1FFF。

(2)用E命令向芯片内存单元置值,再用D命令查看,会发现原来的指没有改变;

(3)用A命令向芯片所在的地址渐入程序,用U命令反汇编,会发现地址保持原来的值。该试验说明,EPOROM不能直接修改和编程,必须先擦除,再通过编程器编程。

(4)将教学其断电后重启,用D命令看内存单元的0000~001F的内容,会发现数值不变,EPROM的内容在断电后会保持。

0001 0002 0003 0004 0005 0006 0007 0008 0009 000A……001E 001F

10、AT28C64B的读操作和一般的RAM一样,而其写操作,需要一定的时间,大约为1毫秒。因此,需要编写一延迟程序,在对EEPROM进行写操作时,调用该子程序,以完成正确的读写。

1)用E命令改变内存单元的值并用D命令观察结果。

<1>在命令行提示符状态下输入:

E 5000↙

屏幕将显示: 5000 内存单元原值:

按如下形式键入:

三、原值:2424(按空格)原值:3636(按空格)原值:4848(按空格)原值:

5050↙

<2>在命令行提示符状态下输入:

D 5000↙

屏幕将显示5000H—507FH内容单元的值,从5000开始的连续四个内存单元的值依次为 2424 3636 4848 5050.

<3>断电后重新启动,用D命令观察看内存单元5000—5003的值,会发现这四个单元的值没有发生改变,说明EEPROM的内容断电后可保存。

2)AT28C64B 存储器不能直接用A命令出入程序,单字节的指令可能会写进去,双字节指令的低位会出错(建议试一试),可将编写好的程序用编程器写入片内;也可以将程序放到RAM(6116)中,调用延时子程序,访问AT28C64B中的内存地址。

下面给出的程序,在5000H—500FH单元中依次写入数据000H、0001H、…00FH。从2000H单元开始输入主程序:

(2000)MVRD R0,0000

MVRD R2,0010;R2记录循环次数

MVRD R3,5000;R3的内容为16为内存地址

(2006)STRR [R3],R0;将R0寄存器的内容放到R3给出的内存单元中

CALA 2200;调用程序地址为2200的延时子程序

INC R0;R0加1

INC R3;R3加1

DEC R2;R2减1

JRNZ 2006;R2不为0跳转到2006H

RET

从2200H单元开始输入延时子程序:

PUSH R3

MVRD R3, FFFF

(2203) DEC R3

JRNZ 2203

POP R3

RET

运行主程序,在命令提示符下输入: G 2000↙。

程序执行结束后,在命令提示符下输入: D 5000↙;

可看到从5000H开始的内存单元的值变为

5000: 0000 0001 0002 0003 0004 0005 0006 0007

5008: 0008 0009 000A 000B 000C 000D 000E 000F

六、思考题:

1)为何能用E命令直接写AT28C64B的存储单元,而A命令则有时不正确;答:E命令是储存寄存器指令A时监控器指令,而E直接多个程序写入AT28C64B 的存储单元,写入的速度快,A命令只能是一次写入执行一条程序,是延迟指令,所以用E命令直接写AT28C64B的存储单元,而A命令则有时不正确。

2)修改延时子程序,将其延时改短,可将延时子程序中R3的内容赋成00FF或0FFF等,再看运行结果。

七、实验心得

通过本次实验,虽然对ROM芯片和RAM芯片在功能和使用方法和差异之处有了一定的了解,但对于我来说,在一些问题上还是没有办法解决;学习了用编程EEPROM芯片内写入一批数据的过程和方法。在编程时,对于给的问题能产生深刻的思考,进一步了解了实验的目的,通过自身的思考,扩展了自己的思维能力,不管怎么说,自己有动手操作和对问题的思考,总是能给我带来不错的收获。

计算机学院网络工程专业班______组、学号

姓名协作者___________ 教师评定___________

实验题目组合逻辑控制器部件教学实验

一、实验目的:

六、深入理解计算机控制器的功能、组成知识。

七、深入的学习计算机各类典型指令的执行流程。

八、对指令格式、寻址方式、指令系统、指令分类等建立具体总概念。

九、学习组合逻辑控制器的设计过程和相关技术。

二、实验设备与器材:

TEC-XP教学计算机

三、实验说明和原理:

控制器设计是学习计算机总体组成和设计的最重要部分。要在TEC-XP16教学计算机完成这项实验,必须清楚地懂得:

1.TEC-XP+教学机的组合逻辑控制器主要由MACH器件组成。

2.TEC-XP+教学机上已实现了29条基本指令。

3. 应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行有扩展指令的程序。

4.要明白TEC-XP+教学机支持的指令格式及指令执行流程分组情况;理解TEC-XP+教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括控制器设计的实现中的具体路线的控制信号的组成。

5.要明确自己要实现的指令功能、格式、执行流程设计中必须遵从的约束条件。

为了完成自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的内容,具体过程包括:

(1)、确定指令格式和功能,要受到教学机已有硬件的约束,应尽量与已实现指

令的格式和分类办法保持一致。

(2)、划分指令执行步骤并设计每一步的执行功能,设计节拍状态的值,应参照已实现指令的处理办法来完成,特别注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能地与原用节拍的状态保持一致和相近。(3)、在指令流程表中真写每一个控制信号的状态值,基本上是个查表填数的过程,应特别仔细,并有意识地体会这些信号的控制作用。

(4)、在给出的mach的源文件中添加扩展指令的控制信号的逻辑表达式,编译适配后下载到MACH器件中。

(5)、写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。

四、实验内容:

1、看懂TEC-XP+教学计算机功能组件和线路逻辑关系分析教学计算机已经设计好并正常运行的几条典型指令(ADD、SHR、OUT、MVRD、CALA、RET)的功能、格式、执行流程。

2、设计几条指令的功能、格式、执行流程,并在教学计算机上实现、调试正确。例如ADC、JRS、JRNS、LDRA等。

3、单条运行指令,查看指令的功能、格式、执行流程。

4、用监控程序的AE命令编写一段小程序,观察运行结果。

五、实验步骤:

用教学计算机以实现的基本指令很扩展指令写程序并运行,测试扩展的指令是否正确。

1.接通教学机电源。

2.将教学机左下方的6个拨动开关置为111100.

3.按一下“RESET”按键。

4.通过16位的数据开关SWH、SWL置入16位的指令操作码。

5.在单步方式下,通过指示灯观察各类型基本指令的节拍。

(1)选择基本指令的A组指令中的ADD指令,观察其节拍流程:

1)置拨动开关SW=00000000 00000001;

编译原理实验指导

编译原理实验指导 实验安排: 上机实践按小组完成实验任务。每小组三人,分别完成TEST语言的词法分析、语法分析、语义分析和中间代码生成三个题目,语法分析部分可任意选择一种语法分析方法。先各自调试运行,然后每小组将程序连接在一起调试,构成一个相对完整的编译器。 实验报告: 上机结束后提交实验报告,报告内容: 1.小组成员; 2.个人完成的任务; 3.分析及设计的过程; 4.程序的连接; 5.设计中遇到的问题及解决方案; 6.总结。

实验一词法分析 一、实验目的 通过设计编制调试TEST语言的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。 二、实验预习提示 1.词法分析器的功能和输出格式 词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示 成以下的二元式(单词种别码,单词符号的属性值)。 2.TEST语言的词法规则 |ID|ID |NUM →a|b|…|z|A|B|…|Z →1|2|…|9|0 →+|-|*|/|=|(|)|{|}|:|,|;|<|>|! →>=|<=|!=|== →/* →*/ 三、实验过程和指导 1.阅读课本有关章节,明确语言的语法,画出状态图和词法分析算法流程图。 2.编制好程序。 3.准备好多组测试数据。 4.程序要求 程序输入/输出示例:

广工_操作系统_课程设计_源代码

课程设计 课程名称________操作系统___ ____ 题目名称_多用户多级目录文件系统的实现_ 学生学院________计算机学院____________ 专业班级______ _________ 学号________ ___________ 学生姓名_________ _____________ 指导教师__________林穗______________ 2011年1月18日

广东工业大学课程设计任务书 题目名称多用户多级目录文件系统的实现 学生学院计算机学院 专业班级08软件工程一班 姓名 学号 一、课程设计的内容 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 二、课程设计的要求与数据 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件存储空间,并采用显式链接分配方式,则可以将位示图合并到FAT中。4.文件目录结构采用多用户多级目录结构,每个目录项包含文件名、物理地址、长度等信息,还可以通过目录项实现对文件的读和写的保护。目录组织方式可以不使用索引结点的方式,但使用索引结点,则难度系数为1.2。 5.设计一个较实用的用户界面,方便用户使用。要求提供以下相关文件操作:(1)具有login (用户登录)

(2)系统初始化(建文件卷、提供登录模块) (3)文件的创建:create (4)文件的打开:open (5)文件的读:read (6)文件的写:write (7)文件关闭:close (8)删除文件:delete (9)创建目录(建立子目录):mkdir (10)改变当前目录:cd (11)列出文件目录:dir (12)退出:logout 6.系统必须可实际演示,选用程序设计语言:C++、C等。 三、课程设计应完成的工作 1.充分理解设计的任务,完成设计的基本要求。然后根据自己的基础和能力选择不同难度的算法和实现方式,以取得更高的分数。 2. 独立独立完成系统的分析、设计、编码、测试工作。 3.完成设计报告的撰写。 4.以光盘(以班为单位刻录)方式提交已调试通过的完整的相关源程序和能够运行的执行文件;提交“课程设计报告”的书面和电子两种版本。 四、课程设计进程安排

广工测试技术实验报告模板

实验题目: 《机械转子底座的振动测量和分析》 实验报告 姓名+学号:冯云凌(2111601211)、 实验时间:2016年10月24日 实验班级:专硕二班 实验教师:邹大鹏副教授 成绩评定:_____ __ 教师签名:_____ __ 机电学院工程测试技术实验室 广东工业大学 广东工业大学实验报告

一、预习报告:(进入实验室之前完成) 1.实验目的与要求: 实验目的: 1.掌握磁电式速度传感器的工作原理、特点和应用。 2.掌握振动的测量和数据分析。 实验要求: 先利用光电式转速传感器测量出电机的转速;然后利用磁电式速度传感器测量机械转子底座在该电机转速下的振动速度;对测量出的振动速度信号进行频谱分析;找出振动信号的主频与电机转速之间的关系。 2.初定设计方案: 先利用光电式转速传感器测量出电机的转速;然后利用磁电式速度传感器测量机械转子底座在该电机转速下的振动速度;利用获得的数据,使用MATLAB对测量出的振动速度信号进行频谱分析;找出振动信号的主频与电机转速之间的关系。 3.实验室提供的仪器设备、元器件和材料 本次实验的主要仪器设备有:机械转子系统,光电式转速传感器,磁电式速度传感器,USB 数据采集卡,计算机等。 磁电式速度传感器简介:

OD9200 系列振动速度传感器,可用于对轴承座、机壳或结构相对于自由空间的绝对振动测量。其输出电压与振动速度成正比,故又称速度式振动传感器。其输出可以是速度值的大小,也可以是把速度量经过积分转换成位移量信号输出。这种测量可对旋转或往复式机构的综合工况进行评价。 OD9200 系列速度振动传感器属于惯性式传感器。是利用磁电感应原理把振动信号变换成电信号。它主要由磁路系统、惯性质量、弹簧阻尼等部分组成。在传感器壳体中刚性地固定有磁铁,惯性质量(线圈组件)用弹簧元件悬挂于壳体上。工作时,将传感器安装在机器上,在机器振动时,在传感器工作频率范围内,线圈与磁铁相对运动、切割磁力线,在线圈内产生感应电压,该电压值正比于振动速度值。与二次仪表相配接(如OD9000 振动系列仪表),即可显示振动速度或振动位移量的大小。也可以输送到其它二次仪表或交流电压表进行测量。

编译原理实验报告实验一编写词法分析程序

编译原理实验报告实验名称:实验一编写词法分析程序 实验类型:验证型实验 指导教师:何中胜 专业班级:13软件四 姓名:丁越 学号: 电子邮箱: 实验地点:秋白楼B720 实验成绩: 日期:2016年3 月18 日

一、实验目的 通过设计、调试词法分析程序,实现从源程序中分出各种单词的方法;熟悉词法分析 程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。确定词法分析器的输出形式及标识符与关键字的区分方法。加深对课堂教学的理解;提高词法分析方法的实践能力。通过本实验,应达到以下目标: 1、掌握从源程序文件中读取有效字符的方法和产生源程序的内部表示文件的方法。 2、掌握词法分析的实现方法。 3、上机调试编出的词法分析程序。 二、实验过程 以编写PASCAL子集的词法分析程序为例 1.理论部分 (1)主程序设计考虑 主程序的说明部分为各种表格和变量安排空间。 数组 k为关键字表,每个数组元素存放一个关键字。采用定长的方式,较短的关键字 后面补空格。 P数组存放分界符。为了简单起见,分界符、算术运算符和关系运算符都放在 p表中 (编程时,还应建立算术运算符表和关系运算符表,并且各有类号),合并成一类。 id和ci数组分别存放标识符和常数。 instring数组为输入源程序的单词缓存。 outtoken记录为输出内部表示缓存。 还有一些为造表填表设置的变量。 主程序开始后,先以人工方式输入关键字,造 k表;再输入分界符等造p表。 主程序的工作部分设计成便于调试的循环结构。每个循环处理一个单词;接收键盘上 送来的一个单词;调用词法分析过程;输出每个单词的内部码。 ⑵词法分析过程考虑 将词法分析程序设计成独立一遍扫描源程序的结构。其流程图见图1-1。 图1-1 该过程取名为 lexical,它根据输入单词的第一个字符(有时还需读第二个字符),判断单词类,产生类号:以字符 k表示关键字;i表示标识符;c表示常数;p表示分界符;s表示运算符(编程时类号分别为 1,2,3,4,5)。 对于标识符和常数,需分别与标识符表和常数表中已登记的元素相比较,如表中已有 该元素,则记录其在表中的位置,如未出现过,将标识符按顺序填入数组id中,将常数 变为二进制形式存入数组中 ci中,并记录其在表中的位置。 lexical过程中嵌有两个小过程:一个名为getchar,其功能为从instring中按顺序取出一个字符,并将其指针pint加1;另一个名为error,当出现错误时,调用这个过程, 输出错误编号。 2.实践部分

数据库实验报告完整

华北电力大学 实验报告 | | 实验名称数据库实验 课程名称数据库 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:2015/7/9

《数据库原理课程设计》课程设计 任务书 一、目的与要求 1.本实验是为计算机各专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力 而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。 为后继课程和毕业设计打下良好基础。 2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界 面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2)设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E-R图及关系数据库理论知识设计数据库模式: 1)把E-R图转换为逻辑模式; 2)规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。 4)用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1)根据系统分析,完成授权操作; 2)了解学习收回权限的操作。 4.完成用户界面的设计,对重要数据进行加密。

2013广工数据库实验报告

数据库原理实验报告 学院计算机学院 专业计算机科学与技术班级2011 级7 班 学号3111XXXX 姓名XXX 指导教师明俊峰 (2013 年11 月)

计算机学院计算机专业2011(7)班学号:3111 姓名:协作者:________ 教师评定: 实验__一__题目__ 数据库及基本表的建立 _ 实验__二__题目__ 设计数据完整性 __ 实验__三__题目__ 查询数据库 __ 实验平台:SQL Server 2005

计算机学院计算机专业2011(7)班学号:3111 姓名:协作者:________ 教师评定: 实验题目一、数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试 创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。 创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。 1、创建数据库: 确定数据库名称;数据库用于学生管理,命名为SC 确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。 确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。 确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库; 1

广东工业大学 操作系统 真题 附答案

学院: 专业: 学号: 姓名: 装 订 线 广东工业大学考试试卷 ( A ) 课程名称: 操 作 系 统 考试时间: 第 周星期 ( 年 月 日) 题 号 一 二 三 四 五 总分 评卷得分 评卷签名 复核得分 复核签名 一、 填空题:(每空1分,共20分) 1. 操作系统有多种类型:(1)允许多个用户以交互方式使用计算机的操作系统,称 为 ;(2)允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为 ;(3)使计算机系统能及时处理由过程控制反馈的数据并作出响应的操作系统称为 。 2. 进程是对正在运行程序的一次抽象。有时进程必须相互作用,这种相互作用会导致 竞争条件,为了避免竞争条件,OS 引进了 的概念,它是满足如下条件的一段代码: 在这段代码中某一时刻只有一个进程访问共享区域。 3. 产生死锁的原因是: ; 。 4. 固定式分区产生 零头,可变式分区产生 零头。 5. 四种I/O 控制方式是 、 、 、 和 。 6. 在设计I/O 软件时,一个关键的概念是 ,它的基本含义是应用程序 独立于具体使用的物理设备. 7. 文件的物理结构有三种: 、 、 。 8. 完成一个磁盘服务请求的总时间由 、 、 组成。 9. 在UNIX 系统中,可通过系统调用 来创建进程。

二、单项选择题:(每题1分,共10分)Array 1. 操作系统是对 ( ) 进行管理的软件。 A.软件 B.硬件 C.计算机资源 D.应用程序 1.分配到必要的资源但未获得处理机时的进程状态是 ( ) 。 A.就绪状态 B.执行状态 C.阻塞状态 D.撤销状态 2.( )是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位, 是一个具有独立功能的程序段对某个数据集的一次执行活动。 A. 程序 B. 作业 C. 进程 D. 线程 3.下面 ( ) 算法不是进程调度算法。 A.LRU B.FCFS C.SJF D.HPF 4.关于存储器管理,以下说法错误的是()。 A.虚拟存储器是由指令的寻址方式所决定的进程寻址空间,由内外存共同组成。 B.覆盖、交换、请求式调入和预调入都是操作系统控制内存和外存数据流动的方式。 C.内存信息保护方法有:上下界保护法、保护键法、软件法等。 D.内存分配算法中,最佳适应算法比首次适应算法具有更好的内存利用率。 5.位示图法可用于()。 A.文件目录的查找 B.分页式存储管理中主存空闲块的分配和回收 C. 页式虚拟存储管理中的页面置换 D. 可变式存储管理中空闲区的分配和回收 6.现有三个作业同时到达,每个作业的计算时间均为2小时,它们在一台处理机上按单 道方式运行,则平均周转时间为() A.2小时 B.3小时 C.4小时 D.6小时 7.进程控制块是描述进程状态和特性的数据结构,一个进程()。 A.可以有多个进程控制块 B.可以和其他进程共用一个进程控制块 C.可以没有进程控制块 D.只能有惟一的进程控制块 8.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区 合并,为此需修改空闲区表,造成空闲区数加1的情况是( ) A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 9.用户程序通过系统调用creat来创建一新文件时,在执行creat()的过程中,用户进 程运行在下。 A.系统态 B.用户态 C.系统态或用户态 D.目态 三、判断题(每题 1 分,共 10 分) 1.实时系统在响应时间、可靠性及交互作用能力等方面一般都比分时系统要求高。() 2.多个进程可以对应于同一个程序,且一个进程也可以执行多个程序。() 3.系统处于不安全状态也可能不会产生死锁。( ) 4.虚拟存储器是一个假想的地址空间,因而这个地址的大小是没有限制的。() 5.设备独立性是指系统具有使用不同设备的能力。() 6.隐式链接结构可以提高文件存储空间的利用率,但不适合文件的随机存取。() 7.为了提高磁盘对换空间的利用率,一般对其使用离散的分配方式。( ) 8.线程是调度的基本单位,但不是资源分配的基本单位。( ) 9.访问控制矩阵比访问控制表更节约空间。( ) 10.在UNIX文件系统中,文件的路径名和磁盘索引结点之间是一一对应的。( )

数据库系统实验报告广东工业大学

数据库系统实验报告 学院计算机学院 专业计算机科学与技术班级级班 学号

姓名 指导教师 (2016 年12 月) 实验__一__题目数据库及基本表的建立 实验__二__题目查询数据库_ 实验__三__题目创建和使用视图、索引、存储过程实验__四_题目小型数据库规划设计 实验平台:SQL Sever 2005

实验题目实验一数据库及基本表的建立 一、实验目的 1、掌握SQL SERVER的查询分析器和企业管理器的使用; 2、掌握创建数据库和表的操作; 二、实验内容和要求 1、分别使用SQL语句、企业管理器(Enterprise Manager)创建数据库; 2、使用SQL语句、企业管理器(Enterprise Manager)创建数据库表; 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL sever 2000/2003/2005; 四、实验方法、步骤及结果测试 创建一个教学管理数据库SC,其描述的信息有:学生信息、课程信息、教师信息、学生选课成绩、授课信息、班级信息、系部信息、专业信息。 创建:student表(学生信息表)、course表(课程信息表)、teacher表(教师信息表)、student _course表(学生选课成绩表)、teacher_course表(教师上课课表)等。 1、创建数据库: 确定数据库名称;数据库用于学生管理,命名为SC 确定数据库的位置;要求:数据文件和日志文件分别存储在E盘自己的目录下。 确定数据库的大小;根据实际的数据量确定数据文件的初始大小为30MB,日志文件的初始大小为3MB。 确定数据库的增长;根据实际情况,确定数据文件按20%增长,日志文件按1MB增长。(1)、利用查询分析器(Query Analyzer),使用SQL语句指定参数创建数据库;

(精选)广工2014编译原理实验报告

实验报告 课程名称编译原理 题目名称 PL/0编译器的扩充 学生学院计算机学院 专业班级计算机科学与技术12(4) 学号 3112005901 学生姓名柏石先 指导教师李杨 程序功能完成情况 测试用例全面程度 学生对所编程序熟悉程度 报告格式是否与要求相符 报告内容是否准确、全面 2014 年 12 月 20日

一、实验目的与要求 对PL/0作以下修改扩充: (1)增加单词:保留字 ELSE,FOR,STEP,UNTIL,DO,RETURN 运算符 *=,/=,&,||,! (2)修改单词:不等号# 改为 <> (3)增加条件语句的ELSE子句,要求:写出相关文法,语法描述图,语义描述图。 二、实验环境与工具 1、源语言:PL/0语言,PL/0语言是PASCAL语言的子集,它的编译程序是一个编译解 析执行系统,后缀名为.PL0; 2、目标语言:生成文件后缀为*.COD的目标代码 3、实现平台:Borland C++Builder 6 4、运行平台:Windows 8.1 三、结构流程 1、结构设计说明 (1)PL/0 语言编译器 PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。

2、词法分析程序的设计 四、开发过程 (一)增加单词:保留字 ELSE,FOR,STEP,UNTIL,DO , RETURN 运算符 *=,/=,&,||,! 新增6个保留字和5个运算符,合计11个单词。 其中保留字ELSE,FOR,STEP,UNTIL,DO, RETURN分别对应ELSESYM,FORSYM, STEPSYM, UNTILSYM,DOSYM,RETURNSYM; 运算符 *= ,/= ,& ,|| ,!分别对应TIMESBECOMES, SLASHBECOMES, ANDSYM, ORSYM, NOTSYM。 注:要求只做词法分析部分,不做语义分析处理,实验的结果只是识别新增的保留字和运算 1.首先考虑需要增加保留字的个数,以及如何命名,再将新增的保留字添加对应的保留字的集合中。具体实现的语句如下所示: typedef enum { NUL, IDENT, NUMBER, PLUS, MINUS, TIMES, SLASH, ODDSYM, EQL, NEQ, LSS, LEQ, GTR, GEQ, LPAREN, RPAREN, COMMA, SEMICOLON, PERIOD,

数据库实验报告大全 广工 蔡延光版

自动化学院自动化专业班学号 姓名实验时间2011.3.14 教师评定 实验题目数据定义 实验报告一 一、实验目的与要求 目的:使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。 要求:1、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、DROP 命令实现数据库的创建及删除工作。 2、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表的创建、更新、删除工作,并实现基本表中各类完整性约束条件的限定。 3、在SQL SERVER 2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表中索引的创建、更新、删除工作。 4、完成上述工作后,在SQL SERVER 2000企业管理器中,查看是否成功创建实验所要求数据库、基本表、各类完整性约束条件及索引等内容。 二、实验方案 所有实验内容必须在SQL Server 2000的查询分析器中完成,设置查询分析器的结果区为Standard Execute(标准执行)或Executed Grid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。要求完成如下内容: 1.定义数据库 定义一个借阅数据库,要求所定义的数据库大小为1M,且数据库名称为Labery_学号。 2.定义下列数据库基本表 在所定义的借阅数据库Labery_学号中,按要求定义如下数据库表: 1)书(book)

列名别名类型及长度是否可为空书号bno char(8)否 类别category varchar(10)否 书名title varchar(40)否 出版社press varchar(30)是 年份book_year Int否 作者author char(20)是 价格price decimal(7,2)否 总藏书量book_total Int否 2)借书证(card) 列名别名类型及长度是否可为空卡号cno char(7)否 姓名name char(8)否 单位department varchar(40)是 类别type char(1)否 3)借书记录(borrow) 列名别名类型及长度是否可为空卡号cno char(7)否 书号bno char(8)否 借书日期borrow_date smalldatetime否 还书日期return_date smalldatetime是 3.完整性约束条件: 主要内容为: 1)确定各基本表的主码; 2)确定各基本表的外码; 3)要求在定义各基本表的同时,确定如下完整性约束条件 1、定义各基本表主码,并且要求主属性不能为空; 2、如果有外码,定义各基本表外码; 3、要求检查借书证中属性Type的值是否为('T','G','U','F')); 4、借书记录borrow基本表中borrow_date默认日期为当前时间。4)确定各基本表哪些字段需要建立索引。

广工编译原理报告

《编译原理》 专项选修课程实验报告 学院计算机学院 专业网络工程 年级班别2013级3班 学号 学生姓名 辅导教师刘添添 成绩 2015年12月

实验一 一.完成内容 扩充单词: (1)将保留字if改为fi (2)增加保留字else (3)增加运算符++、+= 二.设计思路 (1)将保留字if改为fi 1)修改变量定义 2)修改GetSym()方法 (2)增加保留字else 1)修改变量定义 头文件 2)修改GetSym()方法

(3)增加运算符++、+= 1)修改变量定义 2)修改GetSym()方法 三.调试 1、添加else保留字时出错,原因是忽略了查找时是用折半查找的解决方法:按字母表顺序修改定义变量。 四.运行测试 (1)将保留字if改为fi var a,b; begin a:=1; b:=2;

fi b>a then write(a) end. (2)增加保留字else (3)增加运算符++、+=

实验二 一.完成内容 扩充else 子句 二.设计思路 (1)EBNF 范式以及语法描述图 语句 (1) 递归下降子程序 if(sym==ifsym) { getsymdo; memcpy(nxtlev,fsys,sizeof(bool)*symnum); nxtlev[thensym]=true; nxtlev[dosym]=true; conditiondo(nxtlev,ptx,lev); /*调用条件处理(逻辑运算)函数*/ if(sym==thensym) { getsymdo; } else { error(16); /*缺少then*/ } //~~~~~~从这里开始修改~~~~~~~~~~~~~~~ cx1=cx; gendo(jpc,0,0); memcpy(nxtlev,fsys,sizeof(bool)*symnum); nxtlev[elsesym]=true; statementdo(nxtlev,ptx,lev); code[cx1].a=cx; if ( sym==elsesym ) { cx2=cx; getsymdo; if 条件 then 语句 else 语句

2015广工操作系统实验报告(文档最后含源码下载地址)

操作系统实验报告 学生学院____ 计算机学院______ 专业班级13级计科9 学 号 学生姓名 指导教师 李敏 2015年12月29日

实验一进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 设计一个有N个进程共行的进程调度程序。要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),时间片轮转算法,多级反馈队列调度算法这三种算法。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC或兼容机 软件环境:C++、C语言编程环境 四、实验方法 1、编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。 例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。 2、编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。 简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。 3、多级反馈队列调度算法的基本思想是:

广东工业大学C语言实验报告模板

实验_______题目____________________________课程名称C程序设计 C程序设计 实验报告 课程名称 C程序设计 学生学院管理学院 专业班级 学号 学生姓名 指导教师____黄永慧 ______________ 年月日

实验_______题目____________________________课程名称C程序设计 一.实验目的 1.设计一个C++程序,输入一个学生的三门课成绩,求其总成绩并输出。 2.输入一个三角形的三个边长值,求该三角形的面积并输出。 3.要求用户输入两个数,并输出这两个数的和、乘积、差和商。 4.编写一个程序。要求读入一个圆的半径(一个整数),并打印圆的直径、周长和面积。π=3.14159。 8.输入某学生成绩,若成绩在90-100 输出"excellent",若成绩在80-89 输出"good",若成绩在70-79 输出"general",若成绩在60-69 输出”pass”,若成绩在0-59 输出”no pass”。 11.输入三个数,按从小到大的大顺序输出。 12.在100~200 中找出同时满足3 除余2,用5 除余3 和用7 除余2 的所有整数。 二.实验软件环境 Visual c++6.0 三.实验内容 1.设计一个C++程序,输入一个学生的三门课成绩,求其总成绩并输出。 #include int main(void) { int a, b, c; printf("请输入三门课的成绩:"); scanf("%d%d%d", &a, &b, &c); printf("三门课总成绩为:%d\n", a + b + c); return 0; }

广东工业大学编译原理实验报告

实验报告 课程名称____ 编译原理__________ 题目名称_ PL/0编译程序的修改扩充_ 学生学院______计算机学院__ 专业班级_______ ________ 学号 学生姓名______ ________ 指导教师____ _________ __ 20 年月日

一、课内实验要求 对PL/0作以下修改扩充: 增加单词:保留字ELSE,FOR,TO,DOWNTO,RETURN 运算符*=,/=,++,--,&,||,! 修改单词:不等号# 改为<> 增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。 二、实验环境与工具 计算机及操作系统:PC机,Windows2000,WindowsXP 程序设计语言:C 教学型编译程序:PL/0 设计方案 概述:源、目标语言,实现工具(平台),运行平台 源语言:PASCAL 目标语言:假想栈式计算机的汇编语言,可称为类PCODE指令代码 实现工具:Visual C++ 6.0 运行平台:Windows 7 三、设计方案 1.结构设计说明 (1)PL/0 语言编译器 PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。

(2)PL/0编译程序的语法分析过程BLOCK是整个编译过程的核心。这里根据编译程序的总体流程图,来弄清BLOCK过程在整个编译程序中的作用。总流程图如下图所示: PL/0语法调用关系图

PL/0 的编译程序采用一趟扫描方式,以语法分析程序为核心,词法分析程序和代码生 成程序都作为一个独立的过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。 (3)各功能模块描述

广工_操作系统_实验报告

操作系统实验报告 学院_____计算机学院_______ 专业______软件工程________ 班级______ ________ 学号_____ _______ 姓名_______ _________ 指导教师 (2010年10 月)

学号:姓名:协作者:________ 实验__一__题目__ 进程调度___第周星期___ 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。 ·每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行的时间、已用CPU时间、进程状态等。 ·进程的优先数以及需要的运行时间事先由人为指定(也可以随机数产生)。 ·如果运行一个时间片后进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果还未达到,则把它送回队尾。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC 或兼容机 软件环境:C语言编程环境 四、实验原理及设计方案 1、实验原理 将程序顺序的输入进程队列后,开始执行程序,当运行了一个时间片后,如果进程所占的CPU时间达到所需的运行时间时,该进程完成,并撤销该进程,否则则把进程送回队尾。 2、设计方案 用一个进程控制块(PCB)表示进程。输入进程名称,优先级,运行时间后,通过模拟系统对进程采用“轮转法”调度,得到各个时间片进程的运行情况。 3、相关数据结构的说明 struct pcb // 定义进程控制块 PCB {

广工-单片机实验报告全部

广工-单片机实验报告全部

实验报告 课程名称_单片机原理及应用 __ 学生学院信息工程学院 专业班级13级应用电子专业4班 学号3113002512 姓名陈文威 指导教师李优新 2015年12月12 日

实验一:开发软件使用与调试方法 一.实验目的: 学习KEIL 的使用方法,用Keil 开发工具编译C 源码、汇编源程序。掌握单片机的编程及调试。 二.实验内容和要求: 编写C语言程序,用Keil 将程序编译并生成HEX 文件调试程序。通过并口通信线连接PC 与实验箱,用Easy 51Pro 把程序下载到AT89S51 观察实验箱LED 的变化。 三.实验要求程序代码: ORG 0000H AJMP M AIN ORG 0030H MAIN: MOV P2,#0FFH MOV A,#0FEH MOV P0,A LOOP: JB P2.0,LOOP ACALL DELAY_100MS JB P2.0,LOOP RR A

HRER: JNB P2.0,HRER MOV P0,A AJMP L OOP DELAY_100MS: MOV R6,#64H D22: MOV R5,#0F9H D21: DJNZ R5,D21 DJNZ R6,D22 RET END 四.实验心得: 通过本次试验,熟悉了keil软件的使用。初步掌握单片机的编程及调试 实验二定时器和中断应用程序设计与调试 一.实验目的:

掌握单片机的定时器,中断功能系统的应用 二.实验内容和要求: 编写程序,用AT89C51的内部定时器/计数器T0的方式1产生周期为0.2秒的TTL脉冲(TCH和TCL 溢出的时候,产生一个中断),从P05输出。计算如下: 振荡器的频率f=6M=6000000,方式1计数器的长度为L=16.2的16次方即65536 定时时间(溢出时间)t=0.1s 定时常数TC=65536-6000000x0.1/12=65536-50000=15536,将15536转换成16进制为3CB0, TCH=3CH(高八位),TCL=B0H(低八位)。 三.实验主要仪器设备和材料: 1 AMC51单片机综合开发系统一台 2.微机一台 四.实验方法,步骤及结果测试 1.开启ANC51实验装置,检查跳线,一般无需改动。 2.运行Keil调试程序,具体操作步骤参考实验一。 3.参考以下电路图和流程图编写程序。 4.编译程序,把生成的.HEX目标文件下载到AT89S51运行。 5.观察AMC51实验装置的LED在运行程序时闪烁的情

编 译 原 理 实 验 报 告

编译原理实验报告 课程:编译原理 系别:计算机系 班级:11网络 姓名:王佳明 学号:110912049 教师:刘老师 实验小组:第二组 1

实验一熟悉C程序开发环境、进行简单程序的调试 实验目的: 1、初步了解vc++6.0环境; 2、熟悉掌握调试c程序的步骤: 实验内容: 1、输入下列程序,练习Turbo C 程序的编辑、编译、运行。 #include main() { printf(“Programming is fun.\n”); } 2、分析程序,预测其运行结果,并上机检测你的预测。 #include main() { printf(“*\n”); printf(“* * *\n”); printf(“* * * * *\n”); printf(“* * * * * * *\n”); } 3、下面是一个加法程序,程序运行时等待用户从键盘输入两个整数,然后求出它们的和并输出。观察运行结果(程序输出),上机验证该程序。 #include main() { int a,b,c; printf(“Please input a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; printf(“%d+%d=%d\n”,a,b,c); } 2

实验二词法分析器 一、实验目的: 设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。 二、实验要求: 1.对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。 2.本程序自行规定: (1)关键字"begin","end","if","then","else","while","write","read", "do", "call","const","char","until","procedure","repeat" (2)运算符:"+","-","*","/","=" (3)界符:"{","}","[","]",";",",",".","(",")",":" (4)其他标记如字符串,表示以字母开头的标识符。 (5)空格、回车、换行符跳过。 在屏幕上显示如下: ( 1 , 无符号整数) ( begin , 关键字) ( if , 关键字) ( +, 运算符) ( ;, 界符) ( a , 普通标识符) 三、使用环境: Windows下的visual c++6.0; 四、调试程序: 1.举例说明文件位置:f:、、11.txt目标程序如下: begin x:=9 if x>0 then x:=x+1; while a:=0 do 3

广工网络安全实验报告

实验题目实验一端口扫描 一、实验目的 1.掌握端口扫描的基本概念和掌握端口扫描的原理。 2.掌握端口扫描的几种类型及其区别。 二、实验要求 开启windows靶机、linux靶机,在linux靶机的终端使用nmap对windows 靶机进行扫描。 三、实验原理 通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。它使系统用户了解系统目前向外界提供了哪些服务,从而为系统用户管理网络提供了-种手段。- 个端口就是一个潜在的通信通道,也就是一个入侵通道。端口扫描技术是一项自动探测本地和远程系统端口开放情况的策略及方法。端口扫描技术的原理是端口扫描向目标主机的TCP IP服务端口发送探测数据包,并记录目标主机的响应。通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它通过对接收到的数据进行分析.帮助我们发现目标主机的某些内在的弱点。 还是关闭,就可以得知端口提供的服务或信息。端口扫描也可以通过捕获本地主机或服务器的流入流出IP数据包来监视本地主机的运行情况,它通过对接收到的数据进行分析.帮助我们发现目标主机的某些内在的弱点。 在端口扫描后,获得目标主机的端口开放情况,通过查询端对应的服务, 就可以得出该主机开设的服务情况。在此基础上,对端口上提供的服务进行识别。例如Nmap使用的nmap-services数据库包含大约2.200个著名的服在端口扫描后,获得目标主机的端口开放情况,通过查询端对应的服务, 就可以得出该主机开设的服务情况。在此基础上,对端口上提供的服务进行识别。例如Nmap使用的nmap-services数据库包含大约2.200个著名的服些服务并不运行在特定的端口,而且1024到49151端口的端口都可以被注册为某种应用所有,所以,需要对常见的服务进行动态识别。些服务并不运行在特定的端口,而且1024到49151端口的端口都可以被注册为某种应用所有,所以,需要对常见的服务进行动态识别。 每个服务必须要有自己的、唯-的特征标志。否则.客户端软件就无法和服务器软件完成握手和进一步的信息交换。攻击者就是利用这点来识别服务的。以常见的TCP类型服务为例。在完成ICP协议的3次握手后,客户端软件和服务器软件建立了连接conectin)。这时服务器软件可以被分成2种,

相关主题
文本预览
相关文档 最新文档