当前位置:文档之家› 组成课内实验报告四

组成课内实验报告四

组成课内实验报告四
组成课内实验报告四

计算机组成原理实验报告

学生姓名陈世阳

专业/班级计算机01班

学号10055008

所在学院电信学院

指导教师姜欣宁

提交日期 2013.115

实验名称:指令译码器(硬连线控制器)

一.实验目的

(1)理解指令译码器的作用和重要性。

(2)学习设计指令译码器。

二. 实验要求

1)实验设计目标

本实验要求根据实验CPU中使用的指令系统设计指令译码器,本实验指令译码器的设计相对比较简单,节拍(t1、t2和t3)因素只在存储器读写时需要对存储器地址分时使用时需要考虑,这里暂不考虑节拍脉冲t,也就是说微操作控制信号只是指令操作码I n和B j的函数:

C m = f(I n,B j)

式中的I n主要代表指令操作码IR[15..12],还有辅助操作码(如算术逻辑指令时的IR[2..0],我们这里要求只考虑指令操作码

IR[15..12]。

B j代表进位标志C和结果为0标志Z。

要求产生的微操作控制信号如下:

op_code 控制ALU进行8种运算操作的3位编码。

c_z_j_flag 为1表示需要条件转移。

lj_instruct 为1表示本条指令是条“JMP ADR”指令。

DRWr 为1表示在t3的下降沿将本条指令的执行结果写入目的寄存器。

Mem_Write 为1表示本条指令有存储器写操作,存储器的地址是目的寄存器的内容。

DW_intruct 为1表示本条指令是双字指令。

change_z 为1表示本条指令可能改变z(结果为0)标志。

change_c 为1表示本条指令可能改变c(进位)标志。

sel_memdata 为1表示本条指令写入目的寄存器的值来自读存储器。

2).顶层设计实体的引脚要求

引脚要求的对应关系如下:

(1)指令IR[15..12]对应实验台开关SD3—SD0

进位C对应实验台开关SD4

结果为0标志Z对应实验台开关SD5

(2)控制信号对应如下:

op_code[2..0] 指示灯R2、R1、R0

c_z_j_flag 指示灯R3

lj_instruct 指示灯R4

DRWr 指示灯R5

Mem_Write 指示灯R6

DW_intruct 指示灯R7

change_z 指示灯R8

change_c 指示灯R9

sel_memdata 指示灯R10

三.实验原理

指令译码器是计算机控制器中最重要的部分。所谓组合逻辑控制器就是指指令译码电路是由组合逻辑实现的。组合逻辑控制器又称硬连线控制器,是早期设计计算机的一种方法。这种控制器中的控制信号直接由各种类型的逻辑门和触发器等组合产生。这样,一旦控制部件构成后,除非重新设计和物理上对它重新连线,否则要想增加新的功能是不可能的。结构上的这种缺陷使得硬连线控制器的设计和调试变得非常复杂而且代价很大。所以,硬连线控制器曾一度被微程序控制器所取代。但是随着新一代机器及VLSI技术的发展,这种控制器又得到了重视,如RISC机广泛使用这种控制器。

1. 组合逻辑控制器原理

图6-42 组合逻辑控制器的结构方框图

图6-42是组合逻辑控制器的结构方框图。逻辑网络的输入信号来源有三个:(1)指令操作码译码器的输出I n;(2)来自时序发生器的节拍电位信号T k;(3)来自执行部件的反馈信

号B j。逻辑网络的输出信号就是微操作控制信号,用来对执行部件进行控制。

显然,组合逻辑控制器的基本原理,可描述为:某一微操作控制信号C m是指令操作码译码器的输出I n、时序信号(节拍电位信号T k)和状态条件信号B j的逻辑函数。即

C m= f ( I n,T k,B j )

用这种方法设计控制器,需要根据每条指令的要求,让节拍电位和时序脉冲有步骤地去控制机器的各有关部分,一步一步地执行指令所规定的微操作,从而在一个指令周期内完成一条指令所规定的全部操作。

一般来说,组合逻辑控制器的设计步骤如下。

(1)绘制指令流程图

为了确定指令执行过程所需的基本步骤,通常是以指令为纲,按指令类型分类,将每条指令归纳成若干微操作,然后根据操作的先后次序画出流程图。

(2)安排指令操作时间表

指令流程图的进一步具体化,把每一条指令的微操作序列分配到各个机器周期的各个时序节拍信号上。要求尽量多的安排公共操作,避免出现互斥。

(3)安排微命令表

以指令流程图为依据,表示出在哪个机器周期的哪个节拍有哪些指令要求哪些微命令。

(4)进行微操作逻辑综合

根据微操作时间表,将执行某一微操作的所有条件(哪条指令、哪个机器周期、哪个节拍和脉冲等)都考虑在内,加以分类组合,列出各微操作产生的逻辑表达式,并加以简化。

(5)实现电路

根据上面所得逻辑表达式,用硬件电路模块来实现。

四.译码器的设计思路

1、设计指令系统首先要设计指令系统。

ADD DR,SR 指令编码:

0000 DR SR 0000 0111

功能:DR ← DR + SR, 影响C Z标志。PC ← PC + 1。INC DR 指令编码:

0001 DR SR 0000 0111

功能:DR ← DR + 1,影响C和Z标志。PC ← PC + 1。 SUB DR,SR 指令编码:

0010 DR SR 0000 0111

功能:DR ← DR – SR,影响C和Z标志。PC ← PC + 1 DEC DR 指令编码:

0011 DR SR 0000 0111

功能:DR ← DR – 1,影响C和Z标志。PC ← PC + 1。 AND DR,SR 指令编码:

0100 DR SR 0000 0011

功能:DR ← DR and SR,影响Z标志。PC ← PC + 1。

OR DR,SR 指令编码:

0101 DR 0000

功能:DR ← DR or SR,影响Z标志。PC ← PC + 1。NOT DR 指令编码:

0110 DR SR 0000 0011

功能:DR ← not DR,影响Z标志。PC ← PC + 1。MOV DR,SR 指令编码:

0111 DR SR 0000 0001

功能:DR ← SR,不影响标志位。PC ← PC + 1。JMP ADR 指令编码:

1000 00000000 0000

ADR

功能:PC ← ADR。

JNC ADR 指令编码:

1001 0000ADR - @ -1

功能:如果C=0,则PC ← ADR;如果C=1,则PC ← PC + 1。JNZ ADR 指令编码:

1010 0000ADR - @ -1

功能:如果Z=0,则PC ← ADR;如果Z=1,则PC ← PC + 1。MVRD DR,DATA 指令编码:

1100 DR 000000 0000

DATA

功能:DR ← DATA。PC ← PC + 2。

LDR DR,SR 指令编码:

1101 DR 0000

功能:DR ← [SR]。PC ← PC + 1。

STR SR,DR 指令编码:

1110 DR

SR

0000 0000

功能:[DR] ← SR。PC ← PC + 1。NOP 指令编码:

0111 00000000 0000

功能:PC←PC+1

新增指令:

PUSH 指令编码:

1110 DR SR 0000 0000

功能:向内存中中写入数据,即压栈操作。POP 指令编码:

1101 DR SR 0000 0001

功能:从内存中读出数据,即出栈操作。

1、 op_code的扩展,由原来3位变成5位,目的是为了PUSH和POP的引入。op_code(4 downto 2)为原来op_code,op_code(1 downto 0)为IR(5 downto 4),后两位区分STR和PUSH,LDR和POP指令。当

op_code(1 downto 0)为11时,执行对压栈弹栈操作。

2、 将PUSH和POP两条指令与STR和LDR两条指令相结合,容易发现,PUSH和STR指令的区别在于,STR是从寄存器DR中提取内存的地址,而PUSH是从另设的寄存器中提取的地址,同为对内存的写操作,两者仅在t2阶段的执行有区别。而POP和LDR的区别也类似,POP是将栈顶指针减一所指的内存地址中存放的数据放入寄存器中,而LDR是将SR寄存器中存的内存地址中的数据放入寄存器中,同为对内存的读操作。

五.设计方案

1、一条指令执行需要3拍时间

t1 取指。在t2的上升沿,将从存储器取出的指令写入指令寄存器IR。

t2 根据指令寄存器IR的内容进行指令译码;根据指令译码得到的控制信号进行运算和其它操作。

t3 存储器读、写操作;在t3的下降沿将运算结果写入目的寄存器,改变C标志和 Z标志;在t3的下降沿,改变PC的值,为取下一条指令做好准备。

由于取指阶段和存储器读写阶段都要访问存储器,速度较慢;而指令译码和运算都由CPU本身完成,因此取指阶段和存储器读写阶段各占一拍时间,指令译码和运算共占一拍时间。

实验CPU的总体构成

实验CPU由5部分组成:取指部分instru_fetch、指令译码部分decoder_unit、执行部分exe_unit、存储器部分memory_unit和通用寄存器组fegfile。另外,还有一个程序包exe_cpu_components,将各低层设计实体作为元件存储,供各设计实体使用。顶层设计实体exe_cpu 完成5个组成部分的连接。

2、指令译码部分decoder_unit

SR源寄存器号(编址)。

DR目的寄存器号(编址)。

op_code控制ALU进行8种运算操作的3位编码。

zj_instruct为1表示本条指令是条“JNZ ADR”指令。

cj_instruct为1表示本条指令是条“JNC ADR”指令。

lj_instruc为1表示本条指令是条“JMP ADR”指令。

DRWr为1表示在t3的下降沿将本条指令的执行结果写

入目的寄存器。

Mem_Write为1表示本条指令有存储器写操作,存储器的地

址是源寄存器的内容。

DW_intruct为1表示本条指令是双字指令

change_z为1表示本条指令可能改变z(结果为0)标志。

change_c为1表示本条指令本条指令可能改变c(进位)

标志。

sel_memdata为1表示本条指令写入目的寄存器的值来自读存

储器。

r_sjmp_ addr计算条件转移指令转移地址所需要的16位相对

地址。它是由条件转移指令中的8位相对地址经

过符号扩展生成的。

从上述控制信号看,实验CPU的指令译码器是很简单的。指令译码器在传统上属于控制器部分,是控制器的核心。所谓组合逻辑控制器是指指令译码器是由组合逻辑构成的,所谓微程序控制器是指指令译码器主要由控制存储器ROM和少许组合逻辑构成的。

指令流程表

实验CPU的指令流程表见表1。

表2-1 实验CPU指令流程表

指令微操作

t1t2t3

ADD DR,SR

Mem_Addr←pc

16存储器地址总

线/

we←1

data_read←ob

从存储器读出的

指令

IR←data_read

pc_inc←pc +1

result←DR + SR

generate z_tmp

generate c_tmp

pc←pc_inc

DR←result

z_out←z_tmp

c_out←c_tmp

INC DR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1result←DR + 1

generate z_tmp

generate c_tmp

pc←pc_inc

DR←result

z_out←z_tmp

c_out←c_tmp

SUB DR,SR

Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

result←DR - SR

generate z_tmp

generate c_tmp

pc←pc_inc

DR←result

z_out←z_tmp

c_out←c_tmp

DEC DR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1result←DR - 1

generate z_tmp

generate c_tmp

pc←pc_inc

DR←result

z_out←z_tmp

c_out←c_tmp

AND DR,SR

Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

result←DR and

SR generate

z_tmp

pc←pc_inc

DR←result

z_out←z_tmp

OR DR,SR

Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

result←DR or SR

generate z_tmp

pc←pc_inc

DR←result

z_out←z_tmp

NOT DR IR←data_read

pc_inc←pc +1result←not DR

generate z_tmp

pc←pc_inc

DR←result

z_out←z_tmp

MOV DR,SR

Mem_Addr←pc

we←1

data_read←ob

result←DR pc←pc_inc

DR←result

IR←data_read pc_inc←pc +1

JMP ADR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1Mem_Addr←pc_inc we←1

data_read←ob

pc←data_read

JNC ADR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

generate

c_z_j_flag

generate

sjmp_addr

if c_z_j_flag =

1 then

pc←sjmp_addr

else pc←pc_inc

JNZ ADR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

generate

c_z_j_flag

generate

sjmp_addr

if c_z_j_flag =

1 then

pc←sjmp_addr

else pc←pc_inc

MVRD DR,DATA

Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

Mem_Addr←pc_inc we←1

data_read←ob

DR←data_read

pc←pc + 2

LDR DR,SR

Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

Mem_Addr←SR we←1

data_read←ob

DR←data_read

pc←pc_inc

STR SR,DR

Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1

Mem_Addr←DR we←0

ob←SR

pc←pc_inc

NOP Mem_Addr←pc pc←pc_inc

we←1 data_read←ob IR←data_read pc_inc←pc +1

PUSH SR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1Mem_Addr←POUT we←1

data_read←ob

DR←data_read

pc←pc_inc

POP DR Mem_Addr←pc

we←1

data_read←ob

IR←data_read

pc_inc←pc +1Mem_Addr←POUT-1we←0

ob←SR

pc←pc_inc

说明:

(1)Mem_Addr是存储器地址总线。

(2)ob是存储器数据总线。

(3)WE是存储器读写信号,为1时写存储器,为0时读存储器。

(4)z_tmp是运算产生的结果为0标志,z_out是本条指令执行完成后的结果为0标志。

(5)c_tmp是运算产生的进位标志,c_out是本条指令执行完成后的进位标志。

(6)IR是指令寄存器。

(7)c_z_j_flag是条件转移指令“JNC ADR”或者“JNZ ADR”产生的条件转移标志。

(8)sjmp_addr是条件转移指令“JNC ADR”或者“JNZ ADR”产生的条件转移地址。

(9)result是运算器产生的运算结果。

(10)POUT是新增加的寄存器中存放的栈顶指针。

六 实验步骤

(1)实验台设置成FPGA-CPU独立调试模式

REGSEL = 0、CLKSEL = 1、FDSEL = 0。使用实验台上的单脉冲,即STEP_CLK短路子短接,短路子RUN_CLK断开。

(2)将设计在Quartus Ⅱ下输入,编译后下载到TEC-CA上的FPGA 中。

(3)拨动实验台上的开关SD5—SD0,改变IR[15..12]、进位标志C 和结果为0标志Z,观察指示灯R10-R0显示的控制信号,并填写表6-28和表6-29。

七. 实验过程及结果

译码器是控制器的一个重要组成部分。而要进行译码器的设计,首先应有码可译,即须进行指令系统的设计。由于采用硬布线系统,故应先在数据通路上排出每条指令的指令周期流程,并把流程中的每一步操作分解成微操作序列,然后为每一个微操作分配时间,列出微操作对应的微命令操作时间表,写出微命令的最简逻辑表达式,最终用电路实现。实验时,在原有指令的基础上,按照实验要求,考虑了PUSH SR,POP DR,CALL ADDR和RET指令,并相应设计了译码器。实验中遇到了困难主要是编写的程序一直无法通过。经过查阅了大量资料后,终于编写出正确的程序,完成了实验要求。

加上附加的4条指令后,该实验中指令条数达到了17条。因此指令操作码字段应扩展为5位,对应地,IR也为5位。对应指令的微操做系统已经写在上面的表格中。

存储指令译码分析

以上图为例,指令寄存器中的指令为1110111000000000(即STR R2 R3,存储指令),译出的Mem_Write为1表示本条指令有存储器写操作,存储器的地址是源寄存器的内容。译出的操作码op_code为1111(非算术操作),译出的目的操作数寄存器DR为11(即R3),源操作数寄存器SR均为10(即R2),change_c和change_z等其他无关标志均为无效。

转移指令译码分析

以上图为例,指令寄存器中的指令为1010000001010101(即JNZ 55H,条件转移指令),译出的条件转移标志zj_instruct为1表示本条指令是条“JNZ ADR”指令,译出的操作码op_code 为1111(非算术操作),译出的条件转移指令转移地址所需要的16位相对地址r_sjmp_addr为0000000001010101(单独测试此指令时PC为0)。change_c和change_z等其他无关标志均为无效。

运算指令译码分析

以上图为例,指令寄存器中的指令为0000000010000111(即指令MUI R0,R0,令R0与R0相乘),译出的操作码op_code为1000(执行单元的乘法的操作码),译出的目的操作数寄存器DR 和源操作数寄存器SR均为00(即R0),译出的可能改变进位标志change_c为1(有效),change_z为0(无效)。

其他指令译码分析

以上图为例,指令寄存器中的指令为0000000001110000(即NOP指令),实际上是一个不影响标志位的MOV R0,R0指令,change_c和change_z等所有标志均为无效。

八. 实验感想

在做这个实验之前由于组成原理的第八章还学得比较懵懂,因此有点茫然无从入手一开始觉得无从下手,将第八章的知识复习了一遍,才清晰许多。完成实验前面的基本要求时还是比较容易,比较快地完成了实验,观察了现象,并填写完了状态表。实验中附加的一些指令才是难点。在经过一步一步的分析之后才一点一点地改善过来。由此可见,很多事情不一定是一蹴而就的,需要慢慢地改进,接近目标。

9. 附录

1.状态表

表6-28 指令译码器实验(C=0且Z=0)

指令IR[15..12]OP[2..0]c_z_j_flag lj_instruct DRWr

0000000001 ADD

DR,SR

INC DR0001100001

SUB

0010010001 DR,SR

DEC DR0011110001

AND

010******* DR,SR

OR

010******* DR,SR

NOT DR0110011001

0111111001 MOV

DR,SR

JMP ADR1000111010

JNC ADR1001111100

JNZ ADR1010111100

MVRD

1100111001 DR,DATA

1101111001 LDR

DR,SR

1110111000 STR

SR,DR

表6-29 指令译码器实验(C=0且Z=1或者C=1且Z=0或者C=1且Z=1)指令IR[15..12]OP[2..0]c_z_j_flag lj_instruct DRWr

ADD

0000000011 DR,SR

INC DR0001100011

0010010011 SUB

DR,SR

DEC DR0011110011

AND

010******* DR,SR

010******* OR

DR,SR

NOT DR0110011011

0111111011 MOV

DR,SR

JMP ADR1000111010 JNC ADR1001111000 JNZ ADR1010111000

1100111001 MVRD

DR,DATA

LDR

1101111001 DR,SR

STR

1110111000 SR,DR

2.源代码:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity instruction_decoder is

port (IRH: in std_logic_vector(3 downto 0);

c,z: in std_logic;

op_code: out std_logic_vector(2 downto 0);

c_z_j_flag: out std_logic;

lj_instruct: out std_logic;

DRWr: buffer std_logic; --为1时写DR寄存器

Mem_Write: out std_logic;

DW_intruct: buffer std_logic;

change_z: out std_logic;

change_c: out std_logic;

sel_memdata: out std_logic --为1时存储器的读出数据作为写入DR的数据 );

end instruction_decoder;

architecture behav of instruction_decoder is

signal zj_instruct, cj_instruct: std_logic;

begin

sel_memdata <= IRH(3) and IRH(2) and (not IRH(1));

change_z <= ((not IRH(3)) and (not IRH(2)))

or ((not IRH(3)) and IRH(2) and (not IRH(1)))

or ((not IRH(3)) and IRH(2) and IRH(1) and (not IRH(0)));

change_c <= (not IRH(3)) and (not IRH(2));

c_z_j_flag <= (zj_instruct and (not z)) or (cj_instruct and (not c));

DRWr_proc: process(IRH)

begin

if IRH(3) = '0' then --算术逻辑指令

DRWr <= '1';

elsif IRH(2) = '1' and IRH(1) = '0' then --MVRD DR,DATA;LDR DR,SR

DRWr <= '1';

else

DRWr <= '0';

end if;

end process;

M_instruct:process(IRH)

begin

case IRH(3 downto 0) is

when "1000" | "1100" => --jmp addr;mvrd dr,data

Mem_Write <= '0';

DW_intruct <= '1';

when "1110" => -- str sr,dr

Mem_Write <= '1';

DW_intruct <= '0';

when others =>

Mem_Write <= '0';

DW_intruct <= '0';

end case;

end process;

ALUOP_CODE_PROC: PROCESS(IRH)

begin

if IRH(3) = '0' then

op_code <= IRH(2 downto 0);

else

op_code <= "111";

end if;

end process;

Jinstruct_PROC: process(IRH) begin

case IRH(3 downto 0) is

when "1000" => --jmp adr

zj_instruct <= '0';

cj_instruct <= '0';

lj_instruct <= '1';

when "1001" => --jnc addr

zj_instruct <= '0';

cj_instruct <= '1';

lj_instruct <= '0';

when "1010" => --jnz addr

zj_instruct <= '1';

cj_instruct <= '0';

lj_instruct <= '0';

when others =>

zj_instruct <= '0';

cj_instruct <= '0';

lj_instruct <= '0';

end case;

end process;

end behav;

(完整版)数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1 .实验目的 (1 )掌握使用Visual C++ 6.0 上机调试程序的基本方法; (2 )掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2 .实验要求 (1 )认真阅读和掌握和本实验相关的教材内容。 (2 )认真阅读和掌握本章相关内容的程序。 (3 )上机运行程序。 (4 )保存和打印出程序的运行结果,并结合程序进行分析。 (5 )按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>// 头文件 #include// 库头文件------ 动态分配内存空间 typedef int elemtype;// 定义数据域的类型 typedef struct linknode// 定义结点类型 { elemtype data;// 定义数据域 struct linknode *next;// 定义结点指针 }nodetype; 2)创建单链表

nodetype *create()// 建立单链表,由用户输入各结点data 域之值, // 以0 表示输入结束 { elemtype d;// 定义数据元素d nodetype *h=NULL,*s,*t;// 定义结点指针 int i=1; cout<<" 建立一个单链表"<> d; if(d==0) break;// 以0 表示输入结束 if(i==1)// 建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));// 表示指针h h->data=d;h->next=NULL;t=h;//h 是头指针 } else// 建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t 始终指向生成的单链表的最后一个节点

图形学实验报告

山东建筑大学测绘地理信息学院 实验报告 (2016—2017学年第一学期) 课程:计算机图形学 专业:地理信息科学 班级:地信141 学生姓名:王俊凝 学号:20140113010 指

实验一直线生成算法设计 一、实验目的 掌握基本图形元素直线的生成算法,利用编程语言C分别实现直线和圆的绘制算法。 二、实验任务 在TurboC环境下开发出绘制直线和圆的程序。 三、实验仪器设备 计算机。 四、实验方法与步骤 1 运行TurboC编程环境。 2 编写Bresenham直线绘制算法的函数并进行测试。 3 编写中点圆绘制算法的函数并进行测试。 4 增加函数参数,实现直线颜色的设置。 提示: 1. 编程时可分别针对直线和圆的绘制算法,设计相应的函数,例如void drawline(…)和void drawcircle(…),直线的两个端点可作为drawline的参数,圆的圆心和半径可作为drawcircle的参数。 2. 使用C语言编写一个结构体类型用来表示一个点,结构体由两个成员构成,x和y。这样,在向函数传入参数时,可使用两个点类型来传参。定义方法为:

typedef struct{ int x; int y; }pt2; 此处,pt2就是定义的一个新的结构体数据类型,之后就可用pt2来定义其他变量,具体用法见程序模板。 3. 在main函数中,分别调用以上函数,并传入不同的参数,实现对直线的绘制。 4. 线的颜色也可作为参数传入,参数可采用TurboC语言中的预设颜色值,具体参见TurboC图形函数。 五、注意事项 1 代码要求正确运行,直线和圆的位置应当为参数,实现可配置。 2 程序提交.c源文件,函数前和关键代码中增加注释。 程序模板 #include #include typedef struct{ int x; int y; }pt2; /*declare your drawing functions.*/ void drawline(pt2 startpt,pt2 endpt,int color); void drawcircle(pt2 centerpt,int radius,int color); void circlePlotPoints(pt2 centerpt,int x,int y,int color); int main() { int color,radius;

计算机组成原理实验报告

福建农林大学计算机与信息学院信息工程类实验报告系:计算机科学与技术专业:计算机科学与技术年级: 09级 姓名:张文绮学号: 091150022 实验课程:计算机组成原理 实验室号:___田405 实验设备号: 43 实验时间:2010.12.19 指导教师签字:成绩: 实验一算术逻辑运算实验 1.实验目的和要求 1. 熟悉简单运算器的数据传送通路; 2. 验证4位运算功能发生器功能(74LS181)的组合功能。 2.实验原理 实验中所用到的运算器数据通路如图1-1所示。其中运算器由两片74181

以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74373)锁存,锁存器的输入连接至数据总线,数据开关INPUT DEVICE用来给出参与运算的数据,并经过一个三态门(74245)和数据总线相连,数据显示灯“BUS UNIT”已和数据总线相连,用来显示数据总线内容。 图1-2中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其它均为电平信号。由于实验电路中的时序信号均已连至W/R UNIT的相应时序信号引出端,因此,在进行实验时,只需将W/R UNIT 的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3,S2,S1,S0,Cn,LDDR1,LDDR2,ALU-B,SW-B各电平控制信号用SWITCH UNIT中的二进制数据开关来模拟,其中Cn,ALU-B,SW-B为低电平控制有效,LDDR1,LDDR2为高电平有效。 3.主要仪器设备(实验用的软硬件环境) ZYE1603B计算机组成原理教学实验系统一台,排线若干。 4.操作方法与实验步骤

《建筑结构试验》实验报告

《建筑结构试验》实验报告 班级: 学号: 姓名: 南昌航空大学土木工程试验中心 二○一○年四月

目录 试验一电阻应变片的粘贴及防潮技术试验二静态电阻应变仪的使用及接桥试验三电阻应变片灵敏系数的测定 试验四简支钢筋混凝土梁的破坏试验

试验一电阻应变片的粘贴及防潮技术 姓名:学号:星期第讲第组 实验日期:年月日同组者: 一、实验目的: 1.掌握电阻应变片的选用原则和方法; 2.学习常温用电阻应变片的粘贴方法及过程; 3.学会防潮层的制作; 4.认识并理解粘贴过程中涉及到的各种技术及要求对应变测试工作的影响。 二、实验仪表和器材: 1.模拟试件(小钢板); 2.常温用电阻应变片; 3.数字万用表; 4.兆欧表; 5.粘合剂:T-1型502胶,CH31双管胶(环氧树脂)或硅橡胶; 6.丙酮浸泡的棉球; 7.镊子、划针、砂纸、锉刀、刮刀、塑料薄膜、胶带纸、电烙铁、焊锡、焊锡膏等小工具; 8.接线柱、短引线 三、简述整个操作过程及注意事项: 1.分选应变片。在应变片灵敏数K相同的一批应变片中,剔除电阻丝栅有形状缺陷,片内有气泡、霉斑、锈点等缺陷的应变片,将电阻值在120±2Ω范围内的应变片选出待用。 2.试件表面处理。去除贴片位置的油污、漆层、锈迹、电镀层,用丙酮棉球将贴片处擦洗干净,至棉球洁白为止,以保证应变片能够牢固的粘贴在试件表面。 3.测点定位。应变片必须准确地粘贴在结构或试件的应变测点上,而且粘贴方向必须是要测量的应变方向。 4.应变片粘贴。注意分清应变片的正、反面,保证电阻栅的中心与十字交叉点对准。应变片贴好后,先检查有无气泡、翘曲、脱胶等现象,再用数字万用表的电阻档检查应变片有无短路、断路和阻值发生突变(因应变片粘贴不平整导致)的现象。 5.导线固定。接线柱粘帖不要离应变片太远,接线柱挂锡不可太多,导线挂锡一端的裸露线芯不能过长,以31mm为宜。引出线不要拉得太紧,以免试件受到拉力作用后,接线柱与应变片之间距离增加,使引出线先被拉断,造成断路;也不能过松,以避免两引出线互碰

计算机组成原理实验报告

重庆理工大学 《计算机组成原理》 实验报告 学号 __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 工作暂存器打入数据时,数据开关三态门打开,这时应保证运算器输出三态门关闭;同样,当运算器输出结果至总线时也应保证数据输入三态门是在关闭状态。 运算结果表

大学计算机基础实验内容及实验报告1-3-2

第一部分:实验前准备 1、在个人存储设备上,例如u盘上建立个人信息文件夹,文件夹命名为:学号班级本人姓名例如:20160001通信1601章实验 2.将第二部分所作的实验全部保存在该文件夹中 第二部分:实验内容 实验一:Windows 7基本操作(2学时) 一、实验目的 通过本实验的学习,使学生了解或掌握Windows 7操作系统的基本操作以及其对文件和磁盘的管理。 二、实验内容 具体实验要求如下: 1、熟悉输入法切换:按键盘组合键“Ctrl+Space”、“Ctrl+Shift”;熟悉全角/半角切换: “Shift+Space”。 2、熟悉文件夹显示方式和排序方式。 3、熟悉单个和多个文件的选定,然后进行移动和复制操作。 4、实验操作: 在U盘个人信息文件夹下,建立文件夹:WIN7 (1)在WIN7文件夹中建立一个名为WENHUA和APPLE两个新文件夹。 (2)在WIN7文件夹下创建文件EAT.TXT,并设置属性为只读。 (3)将文件EAT.TXT文件复制到APPLE文件夹中,并将新复制的文件改名为文件BASE.DOCX。 (4)将APPLE文件夹中BASE.DOCX文件建立名为BASE的快捷方式,并将其移动到WIN7文件夹中。 (5)利用Windows的搜索功能,查找文件EAT.TXT (6)删除APPLE文件夹中的BASE.DOCX文件。 三、实验要求

束后保存好完整的电子版实验报告和文件夹。 四、实验准备 认真学习教材中有关Windows 7操作系统的所有内容,实验时需携带教材。 五、思考题 文件扩展名代表了文件的类型。如果修改文件扩展名,会产生什么样的结果? 六、实验报告(见模板) 上机实验完成后,打开文件“实验一报告.docx”,填写实验内容。 七、注意事项及其它说明 本课程考试方式为上机考试,但上机时间有限,希望大家在课后多多进行练习(按照以往的经验,分数与练习次数成正比)。 请各位同学按时上机和下机,不要迟到或拖延下课,以免影响机房老师工作或后面同学上课。 严格遵守机房的规章制度,不得在机房内食用任何餐饮。 想望大家在下课后自觉将凳子放回到实验桌下,减少机房老师的重复性劳动,谢谢大家。

计算机组成原理第四次实验报告

实验报告 专业班级: 姓 名: 机器号: 学 号: E-mail: 指导教师: 总成绩: 分步成绩: 出勤: 实验表现 实验报告: 实验五 模型机与机器指令执行实验 一 实验目的 1 实验目的 (1) 掌握控制器的工作原理 (2) 掌握由控制器、运算器、存储器、组成的模型机的工作原理 (3) 通过运行各种简单程序,掌握机器指令和微指令的关系 2 实验要求 (1) 做好实验预习和准备工作,掌握本次实验所用指令系统功能 (2) 将实验用汇编语言源文件编译成机器语言的目标文件 (3) 完成规定的实验内容 (4) 故障分析与排除 (5) 实验结束时完成实验报告,并将报告提交服务器。 二 实验原理 模型机的逻辑框图如图所示。其指令系统和微指令系统可参看资料。在本实验中,模型机作为一个整体工作。所有微程序的控制信号由微程序存储器uM 输出。而各寄存器,运算器的控制端口与uM 联接。 计算机组成原理 机 A W T D L R ST R3R2R1 R0 MAR keyin portout PC mem_a mem_d IR Control 24 ALU DBUS ABUS IA IBUS INT_CODE Display Input SRAM

ADD A,#106 071C01不带进位加法C7FFEF FFFE90 CBFFFF 07 08 08 1C 1D 1E EM=01 EM=CC,W=01 EM=06,A=01 RET08CC返回语句FEFF5F CBFFFF 09 04 CC CD EM=00 EM=06 JMP LOOP04 05AC02无条件跳转语句C6FFFF CBFFFF 05 02 AC AD EM=02 EM=BC 四思考题 1,简述IR寄存器的作用,IR0,IR1的作用。IR2,IR3的作用。 答:IR寄存器用来存放从主存储器读出的一条指令。 IR0:用来存放后续指令地址。 IR1:保存当前正在执行的一条指令 IR2:保存将被存储的下一个数据字节的地址。 IR3:保存当前CPU所访问的主存单元的地址。 2,简述跳转指令的执行过程。 答:首先从SRAM中取指令经IBUS存入IR寄存器,并且解析指令,然后将指令码存入μPC,根据μPC从μM中读出微指令,通过控制端口执行该组微指令,该组微指令有两条,所执行的操作为:以PC为地址从EM中读出数据并送到数据总线上,再将数据总线上的数据存入PC中。该组微指令执行完毕后,从PC中将下一条指令的地址输出到MAR,再从MAR输入到SRAM,从SRAM中读取下一条指令,该条指令就是跳转到的标号位置的指令。 实验六指令/微指令设计实验 一实验目的 1 掌握计算机各种指令的设计和执行过程; 2 掌握指令/微指令的设计方法。 二实验原理 COP2000计算机组成原理实验仪,可以由用户自己设计指令/微指令系统,这样用户可以在现有的指令系统上进行扩充,加上一些较常用的指令,也可重新设计一套完全不同的指令/微指令系统。 做为原理,我们建立一个有如下指令的系统: 指令助记符指令意义描述 LD A,#II将立即数装入累加器A ADD A,#II累加器A加立即数 GOTO MM无条件跳转指令 OUTA累加器A输出到端口 因为硬件系统需要指令机器码的最低两位做为R0-R3寄存器寻址用,所以指令机器码要忽略掉这两位。这四条指令的机器码分别为04H,08H,0CH,10H。其它指令的设计相同。 指令系统设计 1.打开COP2000组成原理实验软件,选择[文件|新建指令系统/微程序],观察软件下方的“指令系统”窗口,所有指令码都“未使用”。

大学大学计算机实验报告

大学大学计算机实验报告 一、实验目的 1.掌握Word文档的创建、并按指定路径、指定文件名保存文件。 2.掌握文档中文字的快速输入并设置:文字的字号、字体、字颜色、行间距、字间距等格式。 3.掌握文档中段落的分栏、首字下沉、底纹、边框、页眉页脚等的设置方法。 4.掌握文档中插入艺术字、剪贴画、图片及公式的方法、并设置其版式及图片文字说明。5.掌握规则、非规则表格的设计。 5.掌握使用Word软件对论文、科技文章进行排版。 6.掌握文档中页面设置、文字的字体字号、颜色、行间距、字间距的设置。 8.掌握分页、分节要点,按不同章节的要求,设置不同的页眉、页脚。 7.掌握正文及三级标题的设置,并自动生成目录(或有修改后同步该目录)。 10.掌握论文封面的设计。 二、实验内容 1.单文档图文混排。 2.长文档排版。 三、实验过程及结果

计算机系统由计算机系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行工作。 通常所说的计算机均指数字计算机,其运算处理的数据,是用离散数字量表示的。而模拟计算机运算处理的数据是用连续模拟量表示的。模拟机和数字机相比较,其速度快、与物理设备接口简单,但精度低、使用困难、稳定性和可靠性差、价格昂贵。故模拟机已趋淘汰,仅在要求响应速度快,但精度低的场合尚有应用。把二者优点巧妙结合而构成的混合型计算机,尚有一定的生命力。 硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理计算机系统由硬件(子)系统和软件(子)系统组成。前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是电子计算机分数字和模拟两类。

《数据结构》实验报告

《数据结构》实验报告 实验序号:4 实验项目名称:栈的操作

附源程序清单: 1. #include #define MaxSize 100 using namespace std; typedef int ElemType; typedef struct { ElemType data[MaxSize]; int top; }SqStack; void InitStack(SqStack *st) //初始化栈 { st->top=-1; } int StackEmpty(SqStack *st) //判断栈为空{ return (st->top==-1); } bool Push(SqStack *st,ElemType x) //元素进栈{ if(st->top==MaxSize-1)

{ return false; } else { st->top++; //移动栈顶位置 st->data[st->top]=x; //元素进栈 } return true; } bool Pop(SqStack *st,ElemType &e) //出栈 { if(st->top==-1) { return false; } else { e=st->data[st->top]; //元素出栈 st->top--; //移动栈顶位置} return true; } //函数名:Pushs //功能:数组入栈 //参数:st栈名,a->数组名,i->数组个数 bool Pushs(SqStack *st,ElemType *a,int i) { int n=0; for(;n数组名,i->数组个数 bool Pops(SqStack *st,ElemType *a,int i) { int n=0; for(;n

数据结构实验报告图实验

邻接矩阵的实现 1. 实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现2. 实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历3.设计与编码MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; }

int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e) { int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: " cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } }

计算机组成原理实验报告

实验报告书 实验名称:计算机组成原理实验 专业班级: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、

数据结构课程实验报告(15)

课程实验报告课程名称:数据结构 专业班级:信安1302 学号: 姓名: 指导教师: 报告日期:2015. 5. 12 计算机科学与技术学院

目录 1 课程实验概述............ 错误!未定义书签。 2 实验一基于顺序结构的线性表实现 2.1 问题描述 ...................................................... 错误!未定义书签。 2.2 系统设计 ...................................................... 错误!未定义书签。 2.3 系统实现 ...................................................... 错误!未定义书签。 2.4 效率分析 ...................................................... 错误!未定义书签。 3 实验二基于链式结构的线性表实现 3.1 问题描述 ...................................................... 错误!未定义书签。 3.2 系统设计 ...................................................... 错误!未定义书签。 3.3 系统实现 ...................................................... 错误!未定义书签。 3.4 效率分析 ...................................................... 错误!未定义书签。 4 实验三基于二叉链表的二叉树实现 4.1 问题描述 ...................................................... 错误!未定义书签。 4.2 系统设计 ...................................................... 错误!未定义书签。 4.3 系统实现 ...................................................... 错误!未定义书签。 4.4 效率分析 ...................................................... 错误!未定义书签。 5 实验总结与评价 ........... 错误!未定义书签。 1 课程实验概述 这门课是为了让学生了解和熟练应用C语言进行编程和对数据结构进一步深入了解的延续。

工程结构试验与检测实验报告

实验一静态应变测量原理 在电阻应测量中,如在电桥中仅接入一个电阻应变片,则实际测量值中含有由于温度变化时构件产生的应变,这是实验中所不希望的,通过适当的接线方式,可消除温度的影响,在课本中有许多不同的接线方式,主要分为两大类,一是设置专门温度补偿片,这种方式又可分为公共补偿与单片补偿两种,二是通过工作片间互相补偿,称为互相补偿或自补偿,接线要有一定的技巧。掌握电阻应变测量中的温度补偿方式及不同接线方式的测量结果的区别是很重要的。 一、实验目的 1、熟悉电阻应变仪的操作规程; 2、掌握电阻应变仪测量的基本原理; 3、学会用电阻应变片作半桥测量的方法; 4、掌握温度补偿的基本原理。 二、实验设备及仪表 1、DH3819型静态电阻应变仪; 2、等强度梁; 3、电阻应变片,导线。 三、实验内容 进行两种电阻应变测量接线方法的实验,掌握电阻应变测量的不同接线基本原理,以及消除温度影响的方法,根据实验结果分析两种接线不同测量数值理论依据。 四、试验方法 1、1/4桥接线+公共补偿:

单片补偿接线方法:将应变片R1接于应变仪1组,Eg、接线柱,温度补偿片R2接于、0接线柱,则构成外半桥,另内半桥由应变仪内部两个标准电阻构成。输入应变片灵敏度系数,导线电阻,应变片电阻。 公共补偿接线方法:断开补偿组的连线,将公共补偿接线连接于该组,将等强度梁的上侧应变片R1接于1组的Eg、接线柱,将等强度梁下侧应变片R3接、0接线柱。 2、半桥接线 按应变仪的设计原理更换公共补偿端的接线方式,然后在每个测量桥路中接入两个电阻应变片。本试验中,在一个测量桥路中按半桥方式接入等强度梁的上下测应变片。 五、实验步骤 1、接上述接桥方法分别接通桥路; 2、将电阻应变仪调平衡; 3、作预加载1公斤,检查仪表和装置; 4、正式试验,每级加载1公斤,加三级,记取读数,重复三次。 六、试验报告 1、实验方案; 2、实验过程; 3、整理出实验数据,试验数据填入应变记录表。(表格见下表) 4、比较两种接线方法,分析原因,给出结论。 5、写出试验操作方法和体会。 6、回答后面的思考题。

《计算机组成原理》实验报告四

《计算机组成原理》 实 验 报 告 学院:数学与计算机学院 专业:软件工程 班级学号: 学生姓名: 实验日期: 2014-11-8 指导老师: 成绩评定: 西华大学数学与计算机学院计算机组成原理实验 室 实验四存储器和总线实验 一、实验目的 熟悉存储器和总线的硬件电路

二、实验要求 按照实验步骤完成实验项目,熟悉存储器的读、写操作,理解在总线上数据传输的方法。 三、实验说明 (一)存储器和总线的构成 1.总线由一片74LS245、一片74LS244组成,把整个系统分为内部总线和外部总线。二片74LS374锁存当前的数 据、地址总线上的数据以供LED显示。(如图8)

图8 总线布局图 2.存储器采用静态RAM(1片6264) 3.存储器的控制电路由一片74LS32和74LS08组成。如图9

图9 存储器控制电路布局图(二)存储器和总线的原理

1.总线的原理:由于本系统内使用8根地址线、8根数据线,所以使用一片74LS245作为数据总线,另一片 74LS244作为地址总线(如图10)。总线把整个系统分为内部数据、地址总线和外部数据、地址总线,由于数据总线需要进行内外部数据的交换,所以由BUS信号来控制数据的流向,当BUS=1时数据由内到外,当 BUS=0时数据由外到内。 图10 总线单元 2.由于本系统内使用8根地址线、8根数据线,所以6264的A8~A12接地,其实际容量为256个字节(如图11)。 6264的数据、地址总线已经接在总线单元的外部总线 上。存储器有3个控制信号:地址总线设置存储器地 址,RM=0时,把存储器中的数据读出到总线上;当 WM=0,并且EMCK有一个上升沿时,把外部总线上的数据写入存储器中。为了更方便地编辑内存中的数 据,在实验机处于停机状态时,可由监控来编辑其中的数据。

大学计算机实验报告范例(完整版)

报告编号:YT-FS-1587-65 大学计算机实验报告范例 (完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

大学计算机实验报告范例(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、实验题目 文件和文件夹的管理 二、实验目的 1.熟悉Windows XP的文件系统。 2.掌握资源管理器的使用方法。 3.熟练掌握在Windows XP资源管理器下,对文件 (夹)的选择、新建、移动、复制、删除、重命名的 操作方法。 三、实验内容 1.启动资源管理器并利用资源管理器浏览文件。 2.在D盘创建文件夹 3.在所创建文件夹中创建Word文件。 4.对所创建文件或文件夹执行复制、移动、重命

名、删除、恢复、创建快捷方式及设置共享等操作。 四、实验步骤 (一)文件与文件夹管理 1.展开与折叠文件夹。右击开始,打开资源管理器,在左窗格中点击“+”展开,点击“—”折叠 2.改变文件显示方式。打开资源管理器/查看,选择缩略、列表,排列图标等 班/王帅、王鹏 3.建立树状目录。在D盘空白处右击,选择新建/文件夹,输入经济贸易学院,依次在新建文件夹中建立经济类1103 4..创建Word并保存。打开开始/程序/word,输入内容。选择文件/另存为,查找D盘/经济贸易学院/1103班/王帅,单击保存 5.复制、移动文件夹 6.重命名、删除、恢复。右击文件夹,选择重命名,输入新名字;选择删除,删除文件 7.创建文件的快捷方式。右击王帅文件夹,选择

数据结构实验报告--图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e)

{ int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: "; cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } } template void MGraph::DFSTraverse(int v) { cout << vertex[v]; visited[v] = 1; for(int j = 0; j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0) DFSTraverse(j); } template void MGraph::BFSTraverse(int v) { int Q[MaxSize]; int front = -1, rear = -1; cout << vertex[v]; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; for(int j = 0;j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0){ cout << vertex[j]; visited[j] = 1;

大学计算机实验报告

《大学计算机基础Ⅰ》课程 实验报告 (以上由学生填写) 西南大学计算机与信息科学学院 计算机基础教育系 2017年12月8日 实验成绩记载 课程Array实验报告一 一、实验题目:Win7得基本操作、文件管理与控制面板得使用 二、实验目得: 1.掌握“计算机"(资源管理器)得使用。 2.掌握文件与文件夹得基本操作。 3.了解显示属性得相关内容,掌握显示属性得设置。 4.掌握鼠标、键盘得属性设置。 5.掌握应用程序得添加/删除功能。 6.掌握输入法得设置方法.

7.掌握系统属性得设置方法。 8.掌握计算机名或域得查瞧及更改方法。 三、实验主要内容及过程(实验主要内容得介绍、主要得操作步骤) (列出实验主要内容通过截屏显示出操作过程以及实验结果) (一)文件与文件夹得管理 1、双击桌面上“计算机"→选择D盘→空白处右击选择“新建”重命名 文件夹→改名为“windows练习”→双击“windows练习"→右击空白处分别新建三个文件夹为“LX1”、“LX2”、“LX3”. 2、双击“C盘”打开→搜索框搜索“*、wmf”单击搜索按钮→选择任 意三个图片文件→右击→选择“复制”→粘贴至“LX1"文件夹中→并对三个文件分别重命名为“图片1、wmf”、“图片2、wmf”、“图片3、wmf”。 3、打开“LX1”文件夹→右击图片“1、wmf”→剪切→打开“LX2” 文件夹→右击空白处点击“粘贴”→选中剩下得两个文件→复制→打开“LX3”文件夹→右击选择“粘贴”→右击“LX2”选择“剪切” →打开“LX1”文件夹→右击选择“粘贴”

4、右击“LX3”文件夹→选择“属性”→选择“常规”属性卡→勾选“隐 藏”→右击“LX2"文件夹→选择“常规"属性卡→勾选“已读"

数据结构实验报告(图)

附录A 实验报告 课程:数据结构(c语言)实验名称:图的建立、基本操作以及遍历系别:数字媒体技术实验日期: 12月13号 12月20号 专业班级:媒体161 组别:无 姓名:学号: 实验报告内容 验证性实验 一、预习准备: 实验目的: 1、熟练掌握图的结构特性,熟悉图的各种存储结构的特点及适用范围; 2、熟练掌握几种常见图的遍历方法及遍历算法; 实验环境:Widows操作系统、VC6.0 实验原理: 1.定义: 基本定义和术语 图(Graph)——图G是由两个集合V(G)和E(G)组成的,记为G=(V,E),其中:V(G)是顶点(V ertex)的非空有限集E(G)是边(Edge)的有限集合,边是顶点的无序对(即:无方向的,(v0,v2))或有序对(即:有方向的,)。 邻接矩阵——表示顶点间相联关系的矩阵 设G=(V,E) 是有n 1 个顶点的图,G 的邻接矩阵A 是具有以下性质的n 阶方阵特点: 无向图的邻接矩阵对称,可压缩存储;有n个顶点的无向图需存储空间为n(n+1)/2 有向图邻接矩阵不一定对称;有n个顶点的有向图需存储空间为n2 9

无向图中顶点V i的度TD(V i)是邻接矩阵A中第i行元素之和有向图中, 顶点V i的出度是A中第i行元素之和 顶点V i的入度是A中第i列元素之和 邻接表 实现:为图中每个顶点建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边(有向图中指以Vi为尾的弧) 特点: 无向图中顶点Vi的度为第i个单链表中的结点数有向图中 顶点Vi的出度为第i个单链表中的结点个数 顶点Vi的入度为整个单链表中邻接点域值是i的结点个数 逆邻接表:有向图中对每个结点建立以Vi为头的弧的单链表。 图的遍历 从图中某个顶点出发访遍图中其余顶点,并且使图中的每个顶点仅被访问一次过程.。遍历图的过程实质上是通过边或弧对每个顶点查找其邻接点的过程,其耗费的时间取决于所采用的存储结构。图的遍历有两条路径:深度优先搜索和广度优先搜索。当用邻接矩阵作图的存储结构时,查找每个顶点的邻接点所需要时间为O(n2),n为图中顶点数;而当以邻接表作图的存储结构时,找邻接点所需时间为O(e),e 为无向图中边的数或有向图中弧的数。 实验内容和要求: 选用任一种图的存储结构,建立如下图所示的带权有向图: 要求:1、建立边的条数为零的图;

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

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