计算机学院数据库实验

计算机学院数据库实验
计算机学院数据库实验

《数据库系统概论》实验报告书

专业班级软件工程101

学号109074153

姓名刘坤

指导教师陈业斌

安徽工业大学计算机学院

实验一:数据定义/数据操纵语言

[ 实验日期 ] 年月日

[ 实验目的 ]

熟悉SQL SERVER上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。

[ 实验内容 ]

1.先建立数据库:STUDENT

用两种方式建立:在查询分析器中以DDL语言方式建立.步骤为:先在指定的地方建立放置数据库文件的文件夹(如学生数据库),然后将建立的数据库文件放到指定的文件夹中.

2.SQL数据定义语句:

例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。

例1-2: (修改数据库表) 在Student表中增加SSEX(C,2) 字段。

例1-3: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。

例1-4: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。

create table s1

( SNO char(5) primary key,

SNAME char(10),

SDEPT char(2),

SAGE smallint

)

insert into s1

select sno,sname,sdept,sage

from student

3. SQL数据操纵语句:

例2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。

例2-2:(多行插入) 将表Student表中计算机系(‘CS’)的学生数据插入到表S1中。

insert into s1

select SNO,SNAME,SDEPT,SAGE

from Student

where SDEPT ='CS'

例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。

create table student_gr

(sno char (6) not null,

average char (10) null,

)

insert into student_gr

select sno ,avg(score) from score group by sno

例2-4: (修改数据) 将S1表中所有学生的年龄加2。

update s1 set SAGE=SAGE+2

例2-5: (修改数据) 将Course表中‘程序设计’课时数修改成与‘数据结构’的课时数相同。

例2-6: (插入数据) 向Score表中插入数据(‘98001’, ‘001’, 95),根据返回信息解释其原因。

insert into Score values('98001', '001', 95)

例2-7: (插入数据) 向Score表中插入数据(‘97001’, ‘010’, 80),根据返回信息解释其原因。

insert into Score values('97001', '010', 80)

例2-8: (删除数据) 删除Score表中学号为‘96001’的成绩信息,根据返回信息解释其原因。

Delete from score

Where SNO=96001

例2-9: (删除数据) 删除Score表中课程号为‘003’的成绩信息,根据返回信息解释其原因。

Delete from score

Where CNO=003

例2-10:(删除数据) 删除学生表S1中学号以96打头的学生信息。

delete from s1

where sno like'96%'

例2-11:(删除数据) 删除数据库表S1中所有学生的数据。

Delete from s1

例2-12:(删除表) 删除数据库表S1和Student_Gr。

DROP TABLE S1,Student_Gr

[ 实验要求 ]

①熟悉SQL Server上机环境;

②建立数据库表,修改数据库表结构;

③对数据库表进行插入、修改和删除数据的操作。

[ 实验方法 ]

①执行SQL语句;

②将实验需求用SQL语句表示;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结 ]

① SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

实验二:数据查询语言

[ 实验日期 ] 年月日

[ 实验目的 ]

体会SQL语言数据查询功能的丰富和复杂。

[ 实验内容 ]

3. SQL数据查询语句:

例3-1: (选择表中的若干列) 求全体学生的学号、姓名、性别和年龄。

select sno,sname,ssex,sage

from student

例3-2: (不选择重复行) 求选修了课程的学生学号。

select sno

from score

where cno is not null

group by sno

例3-3: (选择表中的所有列) 求全体学生的详细信息。

select *

from student

例3-4: (使用表达式) 求全体学生的学号、姓名和出生年份。

select sno,sname,year(getdate())-sage as 出生年份

from student

例3-5: (使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。select sno as 学号,year(getdate())-sage as 出生年份

from student

例3-6: (比较大小条件) 求年龄大于19岁的学生的姓名和年龄。

select sno,sage

from student

where sage>'19'

例3-7: (比较大小条件) 求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。select sname,sdept,sage

from student

where sdept in ('cs','is')and sage>'18'

例3-8: (确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。

select sno,sage

from student

where sage between'19' and '22'

例3-9: (确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。

select sno,sage

from student

where sage not between'19' and '22'

例3-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。

select *

from student

where sdept in ('cs','ma')

例3-11:(确定集合条件) 求不是数学系、计算机系的学生信息。

select *

from student

where sdept not in ('cs','ma')

例3-12:(匹配查询) 求姓名是以“李”打头的学生。

select *

from student

where sname like'李%'

例3-13:(匹配查询) 求姓名中含有“志”的学生。

select *

from student

where sname like'%志%'

例3-14:(匹配查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。

select *

from student

where rtrim(sname) like '%马__'

例3-15:(匹配查询) 求选修课程001或003,成绩在80至90之间,学号为96xxx的学生的学号、课程号和成绩。

select student.sno,cno,score

from student,score

where student.sno=score.sno

and cno in('001','003')

and score between'80'and'90'

and student.sno like'96%'

例3-16:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。

select student.sno,cno

from student,score

where student.sno=score.sno

and score is null

例3-17:(控制行的显示顺序) 求选修003课程或004课程的学生的学号、课程号和分数。

select student.sno,cno,score

from student,score

where student.sno=score.sno

and cno in('003','004')

例3-18:(组函数) 求学生总人数。

select count(sno)

from student

例3-19:(组函数) 求选修了课程的学生人数。

select distinct count(distinct student.sno)

from student,score

where cno is not null

例3-20:(组函数) 求计算机系学生的平均年龄。

select avg(sage)

from student

where sdept='cs'

例3-21:(组函数) 求选修了课程001的最高、最低与平均成绩。

例3-22:(分组查询) 求各门课程的平均成绩与总成绩。

select avg(score) as 平均成绩,sum(score)as 总成绩

from score

group by cno

例3-23:(分组查询) 求各系、各班级的人数和平均年龄。

select sdept,sclass,count(*)as 人数,avg(sage)as 平均年龄

from student

group by sdept,sclass

例3-24:(分组查询) 输入以下查询语句并执行,观察出现的其结果并分析其原因。

SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT

WHERE SDEPT=’CS’ GROUP BY SDEPT;

SELECT SNAME,SDEPT,COUNT(*)FROM STUDENT WHERE SDEPT=’CS’ GROUP BY SDEPT,sname;

例3-25:(分组查询) 分析以下语句为什么会出现错误。并给出正确的查询语句。

SELECT SAGE FROM STUDENT GROUP BY SNO;

SELECT SAGE FROM STUDENT GROUP BY sno,sage

例3-26:(分组查询) 求学生人数不足3人的系及其相应的学生数。

select sdept,count (sno)as 人数

from student

group by sdept

having count (sno)<3

例3-27:(分组查询) 求各系中除01班之外的各班的学生人数。

select sdept,sclass,count (sno)as 人数

from student

group by sdept,sclass

having sclass<>'01'

例3-28:(涉及空值的查询) 分别观察各组函数、行的显示顺序以及分组查询与空值的关系。

例3-29:(自然连接查询) 求学生学号、姓名以及其选修课程的课程号和成绩,但查询结果中只能

有一个SNO字段。

select student.sno,sname,cno,score

from student,score

where student.sno=score.sno

例3-30:(连接查询) 求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课

程名称和成绩。

select student.sname,cname,score

from student,score,course

where student.sno=score.sno and https://www.360docs.net/doc/7f11306826.html,o=https://www.360docs.net/doc/7f11306826.html,o

and https://www.360docs.net/doc/7f11306826.html,o='001' and score not between '70' and '90'

例3-31:(连接查询与表的别名) 求选修了课程的学生的学生姓名、课程号和成绩。

select distinct sname, cno, score

from student,score

where student.sno=score.sno and cno is not null

例3-32:(自身连接查询) 求年龄大于’李丽’的所有学生的姓名、系和年龄。

select b.sname,b.sdept,b.sage

from student a,student b

where a.sname='李丽' and b.sage >a.sage

例3-33:(外部连接查询) 求选修了课程002或003的学生的学号、课程号、课程名和成绩。select student.sno,https://www.360docs.net/doc/7f11306826.html,o,cname,score

from student,score,course

where student.sno=score.sno and https://www.360docs.net/doc/7f11306826.html,o=https://www.360docs.net/doc/7f11306826.html,o and https://www.360docs.net/doc/7f11306826.html,o in('002','003') 例3-34:(子查询) 求与‘李丽’年龄相同的学生的姓名和系。

select b.sname,b.sdept

from student a,student b

where a.sname='李丽' and a.sage=b.sage

例3-35:(子查询) 求选修了课程名为’数据结构’的学生的学号和姓名。

select student.sno,sname

from student,score,course

where cname='数据结构' and student.sno=score.sno and https://www.360docs.net/doc/7f11306826.html,o=https://www.360docs.net/doc/7f11306826.html,o 例3-36:(子查询ANY) 求比数学系中某一学生年龄大的学生的姓名和系。

select sname,sdept

from student

where sage >any

(select sage

from student

where sdept='ma'

)

and sdept<>'ma'

例3-37:(子查询ALL) 求比数学系中全体学生年龄大的学生的姓名和系。

select sname,sdept

from student

where sage >all

(select sage

from student

where sdept='ma'

)

and sdept<>'ma'

例3-38:(子查询EXISTS) 求选修了课程004的学生的姓名和系。

select sname,sdept

from student

where exists

(select *

from score

where student.sno=score.sno and cno='004'

)

例3-39:(返回多列的子查询) 求与‘李丽’同系且同龄的学生的姓名和系。select b.sname,b.sdept

from student a,student b

where a.sname='李丽' and a.sage=b.sage and a.sdept=b.sdept 例3-40: (相关子查询) 求未选修课程004的学生的姓名。

select sname

from student

where not exists

(select *

from score

where student.sno=score.sno and cno='004'

)

[ 实验要求 ]

对数据库表进行各种查询操作。

[ 实验方法 ]

①将实验需求用SQL语句表示;

②执行SQL语句;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结 ]

① SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

实验三:视图、授权控制与事务处理

[ 实验日期 ] 年月日

[ 实验目的 ]

通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。

[ 实验内容 ]

4. SQL视图的定义与操纵:

例4-1: (建立视图) 建立计算机系的学生的视图STUDENT_CS。

create view STUDENT_CS

as

select *

from student

where sdept='cs'

例4-2: (建立视图) 建立由学号和平均成绩两个字段的视图STUDENT_GR。

create view STUDENT_GR

as

select student.sno,avg(score) as 平均成绩

from student,score

where student.sno=score.sno

group by student.sno

例4-3: (视图查询) 利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。

select * from STUDENT_CS

where sage>19

例4-4: (视图查询) 利用视图STUDENT_GR,求平均成绩为88分以上的学生的学号和平均成绩。select *

from STUDENT_GR

where 平均成绩>88

例4-5: (视图更新) 利用视图STUDENT_CS,增加学生( ‘96006’,‘张然’,‘CS’,‘02’,‘男’,19 )。insert into STUDENT_CS

values ('96006','张然','CS','02','男',19)

例4-6: (视图更新) 利用视图STUDENT_CS,将学生年龄增加1岁。观察其运行结果并分析原因。update STUDENT_CS

set sage=sage+1

例4-7: (视图更新) 利用视图STUDENT_GR,将平均成绩增加2分。观察其运行结果并分析原因。update STUDENT_GR

set 平均成绩=平均成绩+2

无法完成更新操作

例4-8: (视图更新) 删除视图STUDENT_CS中学号为‘96006’的学生的全部数据。

Delete from student_cs

Where sno='96001'

例4-9: (视图更新) 删除视图STUDENT_GR的全部数据。

Delete from student_gr

例4-10:(删除视图) 删除视图STUDENT_CS和STUDENT_GR。

Drop view STUDENT_CS,STUDENT_GR

5. SQL数据控制语句:

例5-1: (授权) 给左右邻近同学(用户)授予在表Student上的SELECT权限,并使这两个用户具有给其他用户授予相同权限的权限。

Grant select on student to users with grant option

例5-2: (授权) 给邻近同学(用户)授予Teach表上的所有权限。

Grant all on teach to users

例5-3: (授权) 给所有用户授予Score表上的SELECT权限。

Grant select on score to public

例5-4: (授权验证) 观察左右邻近同学查询你所授权的表中的内容。

例5-5: (收回授权) 收回上面例子中的所有授予的权限。

Revoke all on student,teach,score from users,public

6. SQL事务处理:

例6-1: (事务回退) 将课程名称表中的‘程序设计’课程学时数修改为80、‘编译原理’课程学时数修改为70学时,查询全部课程的总学时数后,取消所有修改(ROLLBACK)。再次查询全部课程的总学时数。注意比较分析两次查询的结果。

修改:

Begin transaction

update course

set ctime=80

where cname='程序设计'

Save tran p

begin transaction

update course

set ctime=70

where cname='编译原理'

save tran p

第一次查询:

取消修改:

rollback tran p

Commit

第二次查询:

例6-2: (事务提交) 将课程名称表中的‘程序设计’课程学时数修改为80、‘编译原理’课程学时数修改为70学时,查询全部课程的总学时数后,确认所有修改(COMMIT)。再次查询全部课程的总学时数。注意比较分析两次查询的结果。

修改:

Begin transaction

update course

set ctime=80

where cname='程序设计'

Save tran p

commit

begin transaction

update course

set ctime=70

where cname='编译原理'

save tran p

commit

查询结果:

[ 实验要求 ]

①建立视图,视图查询,视图更新;

②给某一或全部用户授权和收回授权;

③事务回退,事务提交。

[ 实验方法 ]

①将实验需求用SQL语句表示;

②执行SQL语句;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结 ]

① SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

实验四:存储过程与触发器

[ 实验日期 ] 年月日

[ 实验目的 ]

通过实验进一步理解和掌握数据库的存储过程和触发器。

[ 实验内容 ]

7.索引与数据库完整性

例7-1: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。Create index sc_grade on score(cno asc,score desc)

例7-2: (删除索引) 删除索引SC_GRADE。

drop index score.sc_grade

例7-3: (修改数据库表) 添加成绩表Score的参照完整性约束关系。

例7-4: (修改数据库表) 删除成绩表Score的参照完整性约束关系。

8.存储过程与触发器:

例8-1: (存储过程) 创建一个显示学生总人数的存储过程。

create proc xs_1

as

select count(*) as '总人数'

from student

group by sno

exec xs_1

例8-2: (存储过程) 创建显示学生信息的存储过程STUDENT_LIST,并引用STU_COUNT存储过程。create proc STUDENT_LIST

as

select *

from student

exec STUDENT_LIST

例8-3: (存储过程) 创建一个显示学生平均成绩的存储过程。

create proc average

as

select avg(score)as'平均成绩'

from student,score

where student.sno=score.sno

exec average

例8-4: (存储过程) 创建显示所有学生平均成绩的存储过程。

create proc average

as

select avg(score)as'平均成绩'

from student,score

where student.sno=score.sno

exec average

例8-5:(存储过程) 创建一个对学生姓名进行模糊查找的带参存储过程。

create proc xs_info1 @name char(8)

as

select *

from student

where sname=@name(like)

exec xs_info1

例8-7: (触发器) 创建包含插入、删除、修改多种触发事件的触发器Trig_xs_xskc,对xs、kc和xs_kc表进行参照完整性关系的维护。

(1)当在xs_kc表中插入一条记录时,要检查其学号在xs表中和课程号在kc表中是否存在,若不

存在则不允许插入。

create trigger xs_kc_tg1 on score for insert

as

if exists(select * from inserted

where inserted.sno not in(select sno from student)

or

https://www.360docs.net/doc/7f11306826.html,o not in(select cno from course))

begin

raiserror('违背数据的一致性',16,1)

rollback tran

end

(2)对xs表进行删除操作,则删除XS_KC表中对应学号的所有记录;对xs表的学号进行更新操作,

则更新XS_KC表中对应学号的所有记录;

create trigger trg_xs_del on student

for delete

as

delete from score

where sno in(select sno from deleted)

(3)对kc表进行删除操作,则删除XS_KC表中对应课程号的所有记录;对kc表的课程号进行更新

操作,则更新XS_KC表中对应课程号的所有记录;

alter trigger reminder on course

for update

as

Update from score

Where cno in (select cno from updated)

附录一. 教学管理数据库设计 各表的数据结构和数据如下:

1. 学生情况表 Student

SNO(C,5) 学号

SNAME(C,10) 姓名

SDEPT(C,2) 系

SCLASS(C,2) 班级

SSEX(C,2) 性别

SAGE(smallint) 年龄

96001 马小燕 CS 01 女 21 96002 黎明 CS 01 男 18 96003 刘东明 MA 01 男 18

96004 赵志勇 IS 02 男 20 97001 马蓉 MA 02

女 19 97002 李成功 CS 01 男 20 97003 黎明 IS 03 女 19 97004 李丽

CS

02 女 19 96005 司马志明 CS

02

18

主关键字:SNO 非空字段:SNAME ,SDEPT ,SCLASS

2. 课程名称表 Course 3. 教师授课表 Teach

CNO(C,3) 课程号 CNAME(C,16) 课程名称

CTIME(smallint) 学时数

TNAME(C,8) 教师姓名 TSEX(C,2) 性别 CNO(C,3) 课程号 TDATE(DateTime) 授课日期

TDEPT(C

,2) 系

001 数学分析 144 王成刚 男 004 1999.9.5 CS 002 普通物理 144 李正科 男 003 1999.9.5 CS 003 微机原理 80 严敏 女 001 1999.9.5 MA 004 数据结构 72 赵高 男 004 1999.9.5 IS 005 操作系统 80 李正科 男 003 2000.2.23 MA 006 数据库原理 80 刘玉兰 女 006 2000.2.23 CS

007 编译原理 60 王成刚 男 004 2000.2.23 IS 008 程序设计 40

马悦

008

2000.9.6

CS

主关键字:CNO 候选关键字:CNAME 主关键字:TNAME ,CNO ,TDEPT 参照关系:Course(CNO)

4. 成绩表 Score

SNO(C,5) 学号

CNO(C,3) 课程号

SCORE(float) 分数

SNO(C,5) 学号

CNO(C,3) 课程号

SCORE(float) 分数

SNO(C,5) 学号

CNO(C,3) 课程号

SCORE(float) 分数

96001 001 77.5 96005 004 92 96004 001 87 96001 003 89 96005 005 90 96003 003 91 96001 004 86 96005 006 89 97002 003 91 96001 005 82 96005 007 76 97002 004 96002 001 88 96003 001 69 97002 006 92 96002 003 92.5 97001 001 96

97004 005 90 96002 006 90

97001 008 95

97004 006 85

主关键字:SNO ,CNO 参照关系:Student(SNO),Course(CNO)

IS :信息系

CS :计算机系 MA :数学系

附录二:《数据库概论》实验操作指导

一. 建立数据库

1、在任一地方建立一个文件夹,名为“学生数据库”;

2、在SQL SERVER的企业管理器中建立学生数据库,名为“student”。

使用SQL的DDL建立。

create database student

on

(name='student_data',

filename='d:\student.mdf',

size=5MB,

maxsize=10MB,

filegrowth=10%)

log on

(name='student_log',

filename='d:\student.ldf',

size=2MB,

maxsize=unlimited,

filegrowth=1Mb)

二. 建立基本数据表

1、建立学生表。

create table Student(SNO char(5) primary key,SNAME char(10),SDEPT char(2),SCLASS char(2),SSEX char(2),SAGE smallint);

insert into Student values('96001','马小燕','CS','01','女',21);

insert into Student values('96002','黎明','CS','01','男',18);

insert into Student values('96003','刘东明','MA','01','男',18);

insert into Student values('96004','赵志勇','IS','02','男',20);

insert into Student values('97001','马蓉','MA','02','女',19);

insert into Student values('97002','李成功','CS','01','男',20);

insert into Student values('97003','黎明','IS','03','女',19);

insert into Student values('97004','李丽','CS','02','女',19);

insert into Student values('96005','司马志明','CS','02','男',18);

2.建立课程表

create table Course(CNO char(3) primary key,CNAME char(16),CTIME smallint);

insert into COURSE values('001','数学分析',144);

insert into COURSE values('002','普通物理',144);

insert into COURSE values('003','微机原理',80);

insert into COURSE values('004','数据结构',72);

insert into COURSE values('005','操作系统',80);

insert into COURSE values('006','数据库原理',80);

insert into COURSE values('007','编译原理',60);

insert into COURSE values('008','程序设计',40);

3.建立教师表

create table Teach(TNAME CHAR(8),TSEX CHAR(2),CNO CHAR(3),TDATE smalldatetime,TDEPT CHAR(2));

insert into TEACH values('王成刚','男','004','1999.9.5','CS');

insert into TEACH values('李正科','男','003','1999.9.5','CS');

insert into TEACH values('严敏','女','001','1999.9.5','MA');

insert into TEACH values('赵高','男','004','1999.9.5','MA');

insert into TEACH values('刘玉兰','女','006','2000.2.23','CS');

insert into TEACH values('王成刚','男','004','2000.2.23','IS');

insert into TEACH values('马悦','女','008','2000.9.6','CS');

4.建立成绩表

create table Score (sno char(5),cno char(3),Score float);

insert into Score values('96001','001',77.5);

insert into Score values('96001','003',89);

insert into Score values('96001','004',86);

insert into Score values('96001','005',82);

insert into Score values('96002','001',88);

insert into Score values('96002','003',92.5);

insert into Score values('96002','006',90);

insert into Score values('96005','004',92);

insert into Score values('96005','005',90);

insert into Score values('96005','006',89);

insert into Score values('96005','007',78);

insert into Score values('96003','001',69);

insert into Score values('97001','001',96);

insert into Score values('97001','008',95);

insert into Score values('96004','001',87);

insert into Score values('96003','003',91);

insert into Score values('97002','003',91);

insert into Score values('97002','004', null);

insert into Score values('97002','006',92);

insert into Score values('97004','005',90);

insert into Score values('97004','006',85);

起草:戴小平审核:日期:2006.3

计算机组成原理期末试题

第一章计算机系统概论 计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。早起将运算器和控制器合在一起称为CPU(中央处理器)。目前的CPU包含了存储器,因此称为中央处理器。存储程序并按地址顺序执行,这是冯·诺依曼型计算机的工作原理,也是CPU自动工作的关键。 计算机系统是一个有硬件、软件组成的多级层次结构,它通常由微程序级、一般程序级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。 习题:4冯·诺依曼型计算机的主要设计思想是什么?它包括那些主要组成部分? 主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、逻辑控制装置、存储器、输入和输出设备 5什么是存储容量?什么是单元地址?什么是数据字?什么是指令字? 存储器所有存储单元的总数称为存储器的存储容量。每个存储单元都有编号,称为单元地址。如果某字代表要处理的数据,称为数据字。如果某字为一条指令,称为指令字 7指令和数据均存放在内存中,计算机如何区分它们是指令还是数据? 每一个基本操作称为一条指令,而解算某一问题的一串指令序列,称为程序 第二章运算方法和运算器 按 对阶操作。

直接使用西文标准键盘输入汉字,进行处理,并显示打印汉字,是一项重大成就。为此要解决汉字的输入编码、汉字内码、子模码等三种不同用途的编码。 1第三章 内部存储器 CPU 能直接访问内存(cache 、主 存) 双端口存储器和多模块交叉存储器属于并行存储器结构。 cache 是一种高速缓冲存储器,是为了解决CPU 和主存之间速度不匹配而采用的一项重要的硬件技术,并且发展为多级cache 体系,指令cache 与数据cache 分设体 系。要求cache 的命中率接近于1 适度地兼顾了二者的优点又尽量避免其缺点,从灵活性、命中率、硬件投资来说较为理想,因而得到了普遍采用。 习题: 1设有一个具有20位地址和32位字长的存储器,问: (1)该存储器能存储多少个字节的信息? (2)如果存储器由512K ×8位SRAM 芯片组成,需要多少片; (3)需要多少位地址做芯片选择? (1)字节M 4832*220= (2)片84*28 *51232*1024==K K (3)1位地址作芯片选择 2 已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M ×8位DRAM 芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问: (1) 若每个内存条16M ×64位,共需几个内存条? (2)每个内存条共有多少DRAM 芯片? (3)主存共需多少DRAM 芯片?CPU 如何选

《计算机硬件技术基础》实验答案程序

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

计算机组成实验报告_LAB5

计算机组成实验五——简单的类MIPS单周期处理器实现 生命科学技术学院 5110809XXX 大豆比

目录 1OVERVIEW (1) 1.1实验名称 (1) 1.2实验目的 (1) 1.3实验范围 (1) 1.4注意事项 (1) 2实验描述 (2) 2.1新建工程 (2) 2.2顶层模块Top (5) 2.2.1模块描述 (5) 2.2.2新建模块源文件Top.v (5) 2.2.3定义信号线 (5) 2.2.4程序计数器PC (6) 2.2.5RESET (6) 2.2.6模块实例化,连接模块 (7) 2.2.7连接其他信号线 (8) 3仿真测试 (10) 3.1编写二进制测试程序 (10) 3.2初始化存储器 (10) 3.3编辑testbench文件 (11) 3.4仿真测试,观察波形 (11) 4下载验证 (12) 4.1修改Top.v中Top模块的输入输出端口 (12) 4.2编辑管脚约束文件top.ucf (12) 4.3时钟分频 (12) 4.4指定输入输出端口的意义 (13) 5实验感想与建议 (14) 5.1实验感想 (14) 5.2一些建议 (14) 6实验程序源代码 (15) 6.1Top.v (15) 6.2Ctr.v (18) 6.3Alu.v (21) 6.4AluCtr.v (22) 6.5data_memory.v (23) 6.6register.v (25) 6.7signext.v (27) 6.8inst_memory.v (27) 6.9timeDivider.v (28)

1.OVERVIEW1 1.1实验名称 简单的类MIPS单周期处理器实现-整体调试 1.2实验目的 完成单周期的类MIPS处理器 1.3实验范围 本次实验将覆盖以下范围 1、ISE的使用 2、Xilinx Spartan3E实验板的使用 3、使用VerilogHDL进行逻辑设计 4、仿真测试、下载验证 1.4注意事项 本实验的逻辑设计工具为Xilinx ISE13.4。

(完整版)计算机组成原理期末考试试题及答案

计算机组成原理试题 一、选择题(共20分,每题1分) 1.零地址运算指令在指令格式中不给出操作数地址,它的操作数来自____C__。 A.立即数和栈顶; B.暂存器; C.栈顶和次栈顶; D.累加器。 2.___C___可区分存储单元中存放的是指令还是数据。 A.存储器; B.运算器; C.控制器; D.用户。 3.所谓三总线结构的计算机是指_B_____。 A.地址线、数据线和控制线三组传输线。 B.I/O总线、主存总统和DMA总线三组传输线; C.I/O总线、主存总线和系统总线三组传输线; D.设备总线、主存总线和控制总线三组传输线.。 4.某计算机字长是32位,它的存储容量是256KB,按字编址,它的寻址范围是_____B_。 A.128K; B.64K; C.64KB; D.128KB。 5.主机与设备传送数据时,采用___A___,主机与设备是串行工作的。 A.程序查询方式; B.中断方式; C.DMA方式; D.通道。 6.在整数定点机中,下述第___B___种说法是正确的。 A.原码和反码不能表示-1,补码可以表示-1; B.三种机器数均可表示-1; C.三种机器数均可表示-1,且三种机器数的表示范围相同; D.三种机器数均不可表示-1。 7.变址寻址方式中,操作数的有效地址是___C___。 A.基址寄存器内容加上形式地址(位移量); B.程序计数器内容加上形式地址; C.变址寄存器内容加上形式地址; D.以上都不对。 8.向量中断是___C___。 A.外设提出中断; B.由硬件形成中断服务程序入口地址; C.由硬件形成向量地址,再由向量地址找到中断服务程序入口地址

计算机硬件技术基础实验

计算机硬件技术基础实验 姓名:高广战 专业:09计算机 学号:_____09838033____

安徽农业大学经济技术学院 实验一:计算机运行过程演示 计算机硬件: 计算机硬件系统的基本组成(五大部件):运算器、控制器、存储器、输入设备和输出设备。运算器和控制器统称中央处理器(CPU)。 存储器分成内存储器和外存储器两大类。 CPU、内存储器和连接输入输出设备的接口统称为主机。微机的主机集成在主机板上。 外存储器、输入设备和输出设备统称为外部设备。 计算机运行过程: 第一步:当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不稳定,主板控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU初始化。 加电自检,加电自检的主要任务是检测系统中的一些关键设备是否存在和能否正常工作,如内存和显卡等。 第二步:显卡初始化。查找完所有其它设备的BIOS之后,系统BIOS将显示它自己的启动画面 第三步:接着系统BIOS将检测CPU的类型和工作频率,接下来系统BIOS开始测试主机所有的内存容量 第四步:内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,这些设备包括:硬盘、CD-ROM、软驱、串行接口和并行接口等连接的设备 第五步:标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中安装的即插即用设备 第六步:到这一步为止,所有硬件都已经检测配置完毕了,系统BIOS会重新清屏并在屏幕上方显示出一个系统配置列表,其中概略地列出了系统中安装的各种标准硬件设备,以及它们使用的资源和一些相关工作参数。 第七步:按下来系统BIOS将更新ESCD(Extended System Configuration Data,扩展系统配置数据)。 第八步:ESCD数据更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。

计算机组成原理实验报告

重庆理工大学 《计算机组成原理》 实验报告 学号 __11503080109____ 姓名 __张致远_________ 专业 __软件工程_______ 学院 _计算机科学与工程 二0一六年四月二十三实验一基本运算器实验报告

一、实验名称 基本运算器实验 二、完成学生:张致远班级115030801 学号11503080109 三、实验目的 1.了解运算器的组成结构。 2.掌握运算器的工作原理。 四、实验原理: 两片74LS181 芯片以并/串形式构成的8位字长的运算器。右方为低4位运算芯片,左方为高4位运算芯片。低位芯片的进位输出端Cn+4与高位芯片的进位输入端Cn相连,使低4位运算产生的进位送进高4位。低位芯片的进位输入端Cn可与外来进位相连,高位芯片的进位输出到外部。 两个芯片的控制端S0~S3 和M 各自相连,其控制电平按表2.6-1。为进行双操作数运算,运算器的两个数据输入端分别由两个数据暂存器DR1、DR2(用锁存器74LS273 实现)来锁存数据。要将内总线上的数据锁存到DR1 或DR2 中,则锁存器74LS273 的控制端LDDR1 或LDDR2 须为高电平。当T4 脉冲来到的时候,总线上的数据就被锁存进DR1 或DR2 中了。 为控制运算器向内总线上输出运算结果,在其输出端连接了一个三态门(用74LS245 实现)。若要将运算结果输出到总线上,则要将三态门74LS245 的控制端ALU-B 置低电平。否则输出高阻态。数据输入单元(实验板上印有INPUT DEVICE)用以给出参与运算的数据。其中,输入开关经过一个三态门(74LS245)和内总线相连,该三态门的控制信号为SW-B,取低电平时,开关上的数据则通过三态门而送入内总线中。 总线数据显示灯(在BUS UNIT 单元中)已与内总线相连,用来显示内总线上的数据。控制信号中除T4 为脉冲信号,其它均为电平信号。 由于实验电路中的时序信号均已连至“W/R UNIT”单元中的相应时序信号引出端,因此,需要将“W/R UNIT”单元中的T4 接至“STATE UNIT”单元中的微动开关KK2 的输出端。在进行实验时,按动微动开关,即可获得实验所需的单脉冲。 S3、S2、 S1、S0 、Cn、M、LDDR1、LDDR2、ALU-B、SW-B 各电平控制信号则使用“SWITCHUNIT”单元中的二进制数据开关来模拟,其中Cn、ALU-B、SW-B 为低电平有效,LDDR1、LDDR2 为高电平有效。 对于单总线数据通路,作实验时就要分时控制总线,即当向DR1、DR2 工作暂存器打入数据时,数据开关三态门打开,这时应保证运算器输出三态门关闭;同样,当运算器输出结果至总线时也应保证数据输入三态门是在关闭状态。 运算结果表

计算机组成原理实验

计算机组成原理 一、8 位算术逻辑运算 8 位算术逻辑运算实验目的 1、掌握简单运算器的数据传送通路组成原理。 2、验证算术逻辑运算功能发生器74LS181的组合功能。 8 位算术逻辑运算实验内容 1、实验原理 实验中所用的运算器数据通路如图3-1所示。其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。 图中算术逻辑运算功能发生器74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2为高电平有效。 另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。 2、实验接线 本实验用到4个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块)。

计算机组成原理期末考试

计算机组成原理试题 一、选择题 ( c )1、在下列四句话中,最能准确反映计算机主要功能的是下面哪项。 A.计算机可以存储大量信息 B.计算机能代替人的脑力劳动 C.计算机是一种信息处理机 D.计算机可实现高速运算 ( c )2、计算机硬件能直接执行的只能是下面哪项。 A.符号语言 B.汇编语言 C.机器语言 D.机器语言和汇编语言 ( c )3、运算器的核心部件是下面哪项。 A.数据总线 B.数据选择器 C.算术逻辑运算部件 D.累加寄存器 ( c )4、对于存储器主要作用,下面哪项说法正确。 A.存放程序 B.存放数据 C.存放程序和数据 D.存放微程序 ( c )5、至今为止,计算机中所含所有信息仍以二进制方式表示,其原因是下面哪项。 A.节约元件 B.运算速度快 C.物理器件性能决定 D.信息处理方便( a )6、CPU中有若干寄存器,其中存放存储器中数据的寄存器是下面哪项。 A.地址寄存器 B.程序计数器 C.数据寄存器 D.指令寄存器(d?)7、CPU中有若干寄存器,其中存放机器指令的寄存器是下面哪项。 A.地址寄存器 B.程序计数器 C.指令寄存器 D.数据寄存器 ( c )8、CPU中有若干寄存器,存放CPU将要执行的下一条指令地址的寄存器是下面哪项。 A.地址寄存器 B.数据寄存器 C.程序计数器 D.指令寄存器 (c)9、CPU中程序状态寄存器中的各个状态标志位是依据下面哪项来置位的。 A.CPU已执行的指令 B.CPU将要执行的指令 C.算术逻辑部件上次的运算结果 D.累加器中的数据 ( b )10、为协调计算机各部件的工作,需要下面哪项来提供统一的时钟。 A.总线缓冲器 B.时钟发生器 C.总线控制器 D.操作命令发生器 ( c )11、下列各种数制的数中最小的数是下面哪项。 A.(101001)2 B.(52)8 C.(101001)BCD D.(233)H ( d )12、下列各种数制的数中最大的数是下面哪项。 A.(1001011)2 B.75 C.(112)8 D.(4F)H ( b )13、将十进制数15/2表示成二进制浮点规格化数(阶符1位,阶码2位,数符1位,尾数4位)是下面哪项。 A.01101110 B.01101111 C.01111111 D.11111111

计算机组成原理实验报告

《计算机组成原理》 实验报告 实验室名称:S402 任课教师:邹洋 小组成员:王娜任芬 学号:2010212121 2010212119

实验一_HAMMING码 (2) 实验二_乘法器 (7) 实验三_时序部件 (16) 实验四_CPU__算术逻辑单元实验 (24) 实验五_CPU__指令译码器实验 (32) 实验六_CPU_微程序控制器实验1 (43) 实验七_八_CPU实验 (59)

1 编码实验:Hamming码 1.1、实验目的 1、对容错技术有初步了解,理解掌握海明码的原理 2、掌握海明码的编码以及校验方法 1.2、实验原理 海明码是由Richard Hamming于1950年提出的,目前是被广泛采用的很有效的校验编码。它的特点是只要增加少数几个校验位,就能检测出多位出错,并能自动纠错。 Hamming码的实现原理是在数据中加入几个校验位,将数据代码的码距比较均匀的拉大,并把数据的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化。这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。 假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余的2r-1个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系: 2r≥k+r+1 若要能检测与自动校正一位错,并能发现两位错,此时校验位的位数r和数据位的位数k应满足下述关系:2r-1≥k+r 按上述不等式,可计算出数据位k与校验位r的对应关系,如表1.1所示: 表1.1 数据位k与校验位r的对应关系 k值最小的r值 1~3 4 4~10 5 11~25 6 26~56 7 57~119 8 若海明码的最高位号为m,最低位号为1,即H m H m-1…H2H1,则此海明码的编码规律通常是 1)校验位与数据位之和为m,每个校验位P i在海明码中被分在位号为2i-1的位置上,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。 2)海明码的每一位码H i(包括数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号等于校验它的各校验位的位号之和。 3)在增大合法码的码距时,所有码的码距应尽量均匀增大,以保证对所有码的检错能力平衡提高。 下面具体看一下对一个字节进行海明编码的实现过程。 只实现一位纠错两位检错,由前面的表可以看出,8位数据位需要5位校验位,可表示为H13H12…H2H1。 五个校验位P5~P1对应的海明码位号分别为H13、H8、H4、H2和H1。P5只能放在H13位

计算机组成原理实验

实验一基础汇编语言程序设计 一、实验目的: 1、学习和了解TEC-XP16教学实验系统监控命令的用法。 2、学习和了解TEC-XP16教学实验系统的指令系统。 3、学习简单的TEC-XP16教学实验系统汇编程序设计。 二、预习要求: 1、学习TEC-XP16机监控命令的用法。 2、学习TEC-XP16机的指令系统、汇编程序设计及监控程序中子程序调用。 3、学习TEC-XP16机的使用,包括开关、指示灯、按键等。 4、了解实验内容、实验步骤和要求。 三、实验步骤: 在教学计算机硬件系统上建立与调试汇编程序有几种操作办法。 第一种办法,是使用监控程序的A命令,逐行输入并直接汇编单条的汇编语句,之后使用G命令运行这个程序。缺点是不支持汇编伪指令,修改已有程序源代码相对麻烦一些,适用于建立与运行短小的汇编程序。 第二种办法,是使用增强型的监控程序中的W命令建立完整的汇编程序,然后用M命令对建立起来的汇编程序执行汇编操作,接下来用G命令运行这个程序。适用于比较短小的程序。此时可以支持汇编伪指令,修改已经在内存中的汇编程序源代码的操作更方便一些。 第三种办法,是使用交叉汇编程序ASEC,首先在PC机上,用PC机的编辑程序建立完整的汇编程序,然后用ASEC对建立起来的汇编程序执行汇编操作,接下来把汇编操作产生的二进制的机器指令代码文件内容传送到教学机的内存中,就可以运行这个程序了。适用于规模任意大小的程序。

在这里我们只采用第一种方法。 在TEC-XP16机终端上调试汇编程序要经过以下几步: 1、使教学计算机处于正常运行状态(具体步骤见附录联机通讯指南)。 2、使用监控命令输入程序并调试。 ⑴用监控命令A输入汇编程序 >A 或>A 主存地址 如:在命令行提示符状态下输入: A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始 屏幕将显示: 2000: 输入如下形式的程序: 2000: MVRD R0,AAAA ;MVRD 与R0 之间有且只有一个空格,其他指令相同 2002: MVRD R1,5555 2004: ADD R0,R1 2005: AND R0,R1 2006: RET ;程序的最后一个语句,必须为RET 指令 2007:(直接敲回车键,结束A 命令输入程序的操作过程) 若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。 ⑵用监控命令U调出输入过的程序并显示在屏幕上 >U 或>U 主存地址

《计算机组成原理》期末考试试题及答案

武汉大学计算机学院 2007-2008学年第一学期2006级《计算机组成原理》 期末考试试题A卷答案 __ 学号_______ 班级 ____ _____ 姓名__ _________ 成绩_____ ___ 1.(16分)一浮点数,阶码部分为q位,尾数部分为p位,各包含一位符号位,均用补码表示;该浮点数所能表示的最大正数、最小正数、最大负数和最小负数分别是多少? 解: 2.在一个具有四体低位多体交叉的存储器中,如果处理器的访存地址为以下十进制。求该存储器比单体存储器的平均访问速率提高多少?(忽略初启时的延迟) (1)1、2、3、…… 32 (10分) (2)2、4、6、…… 32 (10分) 解:设存储器的访问周期为T。 (1)四体低位多体交叉的存储器访问的情况如下: 1、2、3 所需时间= T ; 4、5、6、7 所需时间= T ; 8、9、10、11 所需时间= T ; 12、13、14、15 所需时间= T ; 16、17、18、19 所需时间= T ; 20、21、22、23 所需时间= T ; 24、25、26、27 所需时间= T ; 28、29、30、31 所需时间= T ; 32 所需时间= T ; 四体低位多体交叉的存储器访问所需时间=9T; 单体存储器访问所需时间=32T; 所以平均访问速率提高:32/9倍

(2)四体低位多体交叉的存储器访问的情况如下: 2 所需时间= T ; 4、6 所需时间= T ; 8、10 所需时间= T ; 12、14 所需时间= T ; 16、18 所需时间= T ; 20、22 所需时间= T ; 24、26 所需时间= T ; 28、30 所需时间= T ; 32 所需时间= T ; 四体低位多体交叉的存储器访问所需时间= 9T; 单体存储器访问所需时间=16T; 所以平均访问速率提高:16/9倍 3.(20分)假定指令格式如下: 其中: D/I为直接/间接寻址标志,D/I=0表示直接寻址,D/I=1表示间接寻址。 Bit10=1:变址寄存器I寻址; 设有关寄存器的内容为(I)=063215Q 试计算下列指令的有效地址。(Q表示八进制) (1) 152301Q (2) 140011Q 解: (1) 152301Q=1 101 010 011 000 001 因为Bitl0(I)=1,故为变址寄存器寻址,EA=(I)+A=063215+301=063516Q。 (3) 140011Q=1 100 000 000 001 001 因为D/I=0,故为直接寻址,EA=A=011Q。 4. 已知某运算器的基本结构如图所示,它具有+(加)、-(减)、和M(传送)三种操作。 (1) 写出图中1~12表示的运算器操作的微命令;(6分) (2) 设计适合此运算器的微指令格式;(6分) (3) 指令DDA的功能是计算R1、R2和R3三个寄存器的和,若进位C=0,则R1+R2→R2;若进位C=1,则R1+R2+R3→R2,画出指令DDA的微程序流程图,并列出微操作序列(取指令流程不写,取指令微指令安排在0号单元中);(6分) (4)设下址地址为5位,将微程序流程图安排在1~3号单元里;(6分)

计算机硬件的组装实验报告

计算机硬件的组装实验 报告 TYYGROUP system office room 【TYYUA16H-TYY-TYYYUA8Q8-

计算机硬件的组装 实验时间:3月30日晚6:00-9:00 学号:姓名: 一、实验目的 1.加深对理论知识的理解,提高实际动手能力; 2.了解计算机的主要部件,理解各部件的功能,了解微型机的各项技术指标和参数。 3.能掌握现代计算机组成结构、内部部件的连接和装机步骤 4.能够熟练掌握计算机的基本组装技巧。 二、实验内容 1、了解计算机主要器件、外部设备的种类和发展情况; 2、掌握计算机主要器件、外部设备的主要性能指标; 3、知道如何选购计算机的主要器件和外部设备; 4、根据了解的知识,动手实践组装一台微型计算机系统; 5、了解并掌握计算机系统的调试、维护方法。 三、实验步骤 (一)计算机主要器件及外部设备 1、计算机系统硬件组成:微处理器、主板、内存、外存储器、输入系统设备、显示系统设备、机箱与电源。 2、计算机的结构构成和功能 ⑴.主板:主板是一块方形的电路板,在其上面分布着众多电 子元件和各种设备的插槽等。

⑵.主板的插座:主板上的插座主要是指主板上的CPU插座和电源插座。 ⑶. 主板的插槽 ⑷. 主板的芯片组:主板的芯片组是整个主板的核心,主板上各个部件的运行都是通过主板芯片组来控制的。 ⑸.CPU:CPU由控制器和运算器这两个主要部件组成。控制器是整个计算机系统的指挥中心。控制器的指挥控制下,运算器、存储器和输入/输出设备等部件协同工作,构成了一台完整的通用计算机。运算器是计算机中用于实现数据加工处理等功能的部件,它接受控制器的命令,负责完成对操作数据的加工处理任务,其核心部件是算术逻辑单元。 ⑹.内存:内存主要由内存颗粒、PCB电路板、金手指等部分组成。内存的作用是和CPU进行数据交换的,用于直接提供CPU要处理的数据,同时内存容量有限,它需要不断的从外存调入当前操作需要的数据以备CPU使用。 3.计算机的拆装 工具︰螺丝刀 ⑴.拆卸部件操作步骤: 关闭电源,用螺丝刀拆下螺丝,拆卸机 箱。观察主机各部件的连接线(电源和信号线),各部件的固定位置和方式(固定点、螺钉类型),并登记。拆除电源和信号线、板卡、内存、硬盘和软驱。(不要拆除CPU、风扇、主板) ⑵.安装计算机部件的操作步骤:

计算机组成实验报告汇总

计算机组成与体系结构 实验报告

实验项目一 一、实验目的 通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。 二、实验要求: 在VC6.0中创建下列源程序 #include void main() { inti=100; int j=-1; int k; k=i+j; printf("%d",k); } 然后对该程序进行编译、链接,最终生成可执行目标代码。 三、实验报告 1.给出做实验的过程. 关键代码如下:

2.给出源程序(文本文件)的内容(用十六进制形式表示)。 3.给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。

4.VC6.0调试环境:设置断点、单步运行、变量的值(十进制、十六进制)、变量的地址、变量的存储。 断点设置如下:

变量的值十进制: 变量的值十六进制: 变量的地址:

5.VC 6.0反汇编:查看源程序对应的汇编程序、可执行目标程序的二进制编码、了解如何给变量分配内存、系统函数程序段的调用。 6.分析或回答下列问题。 (1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。 不相同。因为不同的机器硬件的组成不同,因此同一个源程序在不同的机器上生成的目标文件不同。 (2)你能在可执行目标文件中找出函数printf()对应的机器代码段吗?能的话,请标示出来。 不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。 (3)为什么源程序文件的内容和可执行目标文件的内容完全不

计算机组成原理实验七

图16 启停单元布局图 序电路由1片74LS157、2片74LS00、4个LED PLS2、PLS3、PLS4)组成。当LED发光时 图17

图17 时序单元布局图 (二)启停、脉冲单元的原理 1.启停原理:(如图18) 启停电路由1片7474组成,当按下RUN按钮,信号输出RUN=1、STOP=0,表示当前实验机为运行状态。当按下STOP 按钮,信号RUN=0、STOP=1,表示当前实验机为停止状态。当 系统处于停机状态时,微地址、进位寄存器都被清零,并且可 通过监控单元来读写内存和微程序。在停止状态下,当HALT 时有一个高电平,同时HCK有一个上升沿,此时高电平被打入 寄存器中,信号输出RUN=1、STOP=0,使实验机处于运行状态。

图18 启停单元原理图 2.时序电路: 时序电路由监控单元来控制时序输出(PLS1、PLS2、PLS3、PLS4)。实验所用的时序电路(如图19)可产生4个等间隔的时序信号PLS1、PLS2、PLS3、PLS4。为了便于监控程序流程,由监控单元输出PO信号和SIGN脉冲来实现STEP(微单步)、GO (全速)和HALT(暂停)。当实验机处于运行状态,并且是微单步执行,PLS1、PLS2、PLS3、PLS4分别发出一个脉冲,全速执行时PLS1、PLS2、PLS3、PLS4脉冲将周而复始的发送出去。在时序单元中也提供了4个按钮,实验者可手动给出4个独立的脉冲,以便实验者单拍调试模型机。

图19 时序电路图 实验步骤 1.交替按下“运行”和“暂停”,观察运行灯的变化(运行:RUN 亮;暂停:RUN灭)。 2.把HALT信号接入二进制拨动开关,HCK接入脉冲单元的PLS1。按下表接线 接入开关位号 信号定 义 HCK PLS1孔 HALT H13孔 3.按启停单元中的停止按钮,置实验机为停机状态,HALT=1。 4.按脉冲单元中的PLS1脉冲按键,在HCK上产生一个上升

计算机组成原理期末考试试卷及答案(1)

计算机组成原理期末考试试卷(1) 一.选择题(下列每题有且仅有一个正确答案,每小题2分,共20分)1.假设下列字符码中最后一位为校验码,如果数据没有错误,则采用偶校验的字符码的是____。 A. 11001011 B. 11010110 C. 11000001 D. 11001001 2.在定点二进制运算器中,减法运算一般通过______ 来实现。 A. 补码运算的二进制加法器 B. 补码运算的二进制减法器 C. 补码运算的十进制加法器 D. 原码运算的二进制减法器 3.下列关于虚拟存储器的说法,正确的是____。 A. 提高了主存储器的存取速度 B. 扩大了主存储器的存储空间,并能进行自动管理和调度 C. 提高了外存储器的存取速度 D. 程序执行时,利用硬件完成地址映射 4.下列说法正确的是____。 A. 存储周期就是存储器读出或写入的时间 B. 双端口存储器采用了两套相互独立的读写电路,实现并行存取 C. 双端口存储器在左右端口地址码不同时会发生读/写冲突 D. 在cache中,任意主存块均可映射到cache中任意一行,该方法称为直接映射方式 5.单地址指令中,为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个操作数一般采用____寻址方式。 A. 堆栈 B. 立即 C. 隐含 D. 间接 6.指令系统中采用不同寻址方式的目的主要是______ 。 A.实现存储程序和程序控制 B.提供扩展操作码的可能并降低指令译码难度 C.可以直接访问外存 D.缩短指令长度,扩大寻址空间,提高编程灵活性7.下列说法中,不符合RISC指令系统特点的是____。 A. 指令长度固定,指令种类少 B. 寻址方式种类尽量少,指令功能尽可能强 C. 增加寄存器的数目,以尽量减少访存的次数 D. 选取使用频率最高的一些简单指令,以及很有用但不复杂的指令

计算机组成原理实验报告

实验报告书 实验名称:计算机组成原理实验 专业班级:113030701 学号:113030701 姓名: 联系电话: 指导老师:张光建 实验时间:2015.4.30-2015.6.25

实验二基本运算器实验 一、实验内容 1、根据原理图连接实验电路

3、比较实验结果与手工运算结果,如有错误,分析原因。 二、实验原理 运算器可以完成算术,逻辑,移位运算,数据来自暂存器A和B,运算方式由S3-S0以及CN来控制。运算器由一片CPLD来实现。ALU的输入和输出通过三态门74LS245连接到CPU内总线上。另外还有指示灯进位标志位FC和零标志位FZ。 运算器原理图: 运算器原理图 暂存器A和暂存器B的数据能在LED灯上实时显示。进位进位标志FC、零标志FZ 和数据总线D7…D0 的显示原理也是如此。 ALU和外围电路连接原理图:

ALU和外围电路连接原理图运算器逻辑功能表:

三、实验步骤 1、按照下图的接线图,连接电路。 2、将时序与操作台单元的开关KK2 置为‘单拍’档,开关KK1、KK3 置为‘运行’档。 3、打开电源开关,如果听到有‘嘀’报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。然后按动CON 单元的CLR 按钮,将运算器的A、B 和FC、FZ 清零。 4、用输入开关向暂存器A 置数。 ①拨动CON 单元的SD27…SD20 数据开关,形成二进制数01100101 (或其它数值),数据显示亮为‘1’,灭为‘0’。 ②置LDA=1,LDB=0,连续按动时序单元的ST 按钮,产生一个T4 上沿,则将二进制数01100101 置入暂存器A 中,暂存器A 的值通过ALU 单元的 A7…A0 八位LED 灯显示。 5、用输入开关向暂存器B 置数。 ①拨动CON 单元的SD27…SD20 数据开关,形成二进制数10100111 (或其它数值)。 ②置LDA=0,LDB=1,连续按动时序单元的ST 按钮,产生一个T4 上沿,则将二进制数10100111 置入暂存器B 中,暂存器B 的值通过ALU 单元的 B7…B0 八位LED 灯显示。 6、改变运算器的功能设置,观察运算器的输出。置ALU_B=0 、LDA=0、LDB=0,然后按表2-2-1 置S3、S2、S1、S0 和Cn的数值,并观察数据总线LED 显示灯显示的结果。如置S3、S2、S1、S0 为0010 ,运算器作逻辑与运算,置S3、S2、

计算机组成原理实验完整版

河南农业大学 计算机组成原理实验报告 题目简单机模型实验 学院信息与管理科学学院 专业班级计算机科学与技术2010级1班 学生姓名张子坡(1010101029) 指导教师郭玉峰 撰写日期:二○一二年六月五日

一、实验目的: 1.在掌握各部件的功能基础上,组成一个简单的计算机系统模型机; 2.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程; 3定义五条机器指令,编写相应微程序并具体上机调试。 二、实验要求: 1.复习计算机组成的基本原理; 2.预习本实验的相关知识和内容 三、实验设备: EL-JY-II型计算机组成原理试验系统一套,排线若干。 四、模型机结构及工作原理: 模型机结构框图见实验书56页图6-1. 输出设备由底板上上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据结构的数据送入数据管显示注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序寄存器时,只有低8位有效。 在本实验我们学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,CPU从内存中取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令分别由相应的微程序段来完成。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计三个控制操作微程序。 存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。 存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。 启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“11”时,按“单步”键,即可转入第01号“取指”微指令,启动程序运行。 注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式有监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关控制。 五、实验内容、分析及参考代码: 生成的下一条微地址 UA5 UA0 MS5 MS0 微地址

计算机组成原理期末考试A卷-含答案

广东外语外贸大学信息学院计算机系 2004—2005学年第2学期 《计算机组成原理》期末考试试卷A 考卷适用班级:计算机专业03级考试时间:120分钟 班级_______ 学号_____________姓名_________成绩_______ 一、填空题(每空1分,共20分) 1.8位二进制补码表示整数的最小值为__-128____,最大值为__127___。 2.计算机常用的校验码有奇偶校验码、海明校验码、____CRC码_____。 3.一个浮点数,当其补码尾数右移1位时,为使其值不变,阶码应该__加1____。4.ALU的基本逻辑结构是__快速进位__加法器,它比行波进位加法器优越,具有先行进位逻辑,不仅可以实现高速运算,还能完成逻辑运算。 5.采用双符号位的方法进行溢出检测时,若运算结果中两个符号位__不相同__,则表明发生了溢出。 6.要组成容量为4M×8位的存储器,需要__8__片4M×1位的存储器芯片并联,或者需要__4____片1M×8位的存储器芯片串联。 7.一台计算机所具有的各种机器指令的集合称为该计算机的__指令系统__。 8.指令编码中,操作码用来指定__操作的类型__,n位操作码最多可以表示___2n____条指令。 9.CPU中,保存当前正在执行的指令的寄存器为__指令寄存器IR_,保存下一条指令地址的寄存器为_程序计数器PC__,保存CPU访存地址的寄存器为__内存地址寄存器AR__。10.控制器在生成各种控制信号时,必须按照一定的__时序__进行,以便对各种操作实施时间上的控制。 11.微程序控制器的核心部件是存储微程序的__控制存储器____,它一般用_只读存储器_构成。 12.任何指令周期的第一步必定是__取指__周期。 13.异步方式下,总线操作周期时间不固定,通过_握手(就绪/应答)_信号相互联络。14.输入输出操作实现的CPU与I/O设备的数据传输实际上是CPU与__IO设备接口寄存器__之间的数据传输。 二、选择题(每小题1分,共20分) 1.冯·诺曼机工作方式的基本特点是___________。 A.多指令流单数据流B.按地址访问并顺序执行指令 C.堆栈操作D.存储器按内容选择地址 2.主机中能对指令进行译码的器件是_________。 A.ALU B.运算器 C.控制器D.存储器 3.运算器的主要功能是进行_______。 A.逻辑运算B.算术运算

计算机组成原理实验报告

实验一 实验题目:运算器实验 实验目的:熟悉存储器和总线的硬件电路 实验要求:按照实验步骤完成实验项目,利用存储器和总线传输数据 实验器材:计算机组成原理实验仪 实验电路图/程序流程图: 实验步骤/程序源代码: 实验原理:实验中所用的运算器原理如图1所示。其中运算器由两片74LS181以并/川形式构成8位字长的ALU。运算器的输出经过有一个三态门(74LS245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器锁存,锁存器的输入已连至数据总线,数据开关用来给出参与运算的数据,经一三态门和数据总线相连,数据显示灯已和数据总线相连,用来显示数据总线内容。 本实验装置的控制线应与相连,数据总线、时序电路产生的脉冲信号(T1-T4)、P(1)、P(2)、P(3)本实验装置已做连接,必须选择一档合适的时钟,其余均为电平控制信号。进行实验室,首先按动位于本实验装置右中则的复位按钮使系统进入初始待令状态,在LED显示器闪动出现“P”的环境下,按动增址命令键使LED显示器自左向右第一位显示提示符“H”,表示本装置已进入手动单元实验状态,在该状态下按动单步命令键,即可获得实验所需的单脉冲信号,而各电平控制信号用位于LED显示器左方的K25-K0二进制数据开关来模拟。在进行手动实验时,必须先预置开关电平:/Load=1,/CE=1,其余开关控制信号电平均置为0,这在以后手动实验时不再说明,敬请注意。 实验连接:按上图实验线路作以下连接: (1)八位运算器控制信号连接:位于实验装置左上方的控制信号(CTR-OUT UNIT)中的(S3、S2、S1、S0、M、/CN、LDDR1、LDDR2、LDCZY、C、B、A)与位于实验装置右中方的(CTR-IN UNIT)、位于实验装置左中方的(UPC UNIT)、位于右上方的(FL UNIT)做对应链接。 (2)完成上述连接,仔细检查无误后方可接通电源进入实验。 实验仪器工作状态设定 在闪动的“P”状态下按动“增址”命令键,使LED显示器自左向右第一位显示提示符“H”,

相关文档
最新文档