组成原理实验指导.docx

上传人:b****6 文档编号:6718185 上传时间:2023-01-09 格式:DOCX 页数:23 大小:84.89KB
下载 相关 举报
组成原理实验指导.docx_第1页
第1页 / 共23页
组成原理实验指导.docx_第2页
第2页 / 共23页
组成原理实验指导.docx_第3页
第3页 / 共23页
组成原理实验指导.docx_第4页
第4页 / 共23页
组成原理实验指导.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

组成原理实验指导.docx

《组成原理实验指导.docx》由会员分享,可在线阅读,更多相关《组成原理实验指导.docx(23页珍藏版)》请在冰豆网上搜索。

组成原理实验指导.docx

组成原理实验指导

 

《计算机组成原理》实验指导

 

重庆文理学院计算机学院邹永康

 

实验一监控程序与汇编语言程序设计实验

教学机的监控程序是用教学机的汇编语言实现的,运行在教学机的硬件系统之上。

它的主要功能是支持把计算机终端或PC机仿真终端接入教学机系统,使用这样的设备执行输入/输出操作,运行教学机的有关程序,以更方便直观的形式支持教学机上的各项实验功能,提供教学机汇编语言的可用子程序。

监控程序提供类似PC机DOS系统下的Debug程序的功能,支持A、U、G、P、T、R、D和E共8个监控命令。

监控命令的格式为:

单字母的命令名后跟回车,或命令名后跟一个地址参数,或寄存器名(编号)参数。

当有些命令运行时需要参数,但命令名后又不跟参数时,监控程序会从内存指定单元取一个默认的地址参数值,通常为该命令前一次运行后所接收地址。

TEC—2机从终端接收地址、指令,数值时,均用最多4位的16进制数输入与显示,并且不能(或说不必)用跟字符h加以标志。

⑴单条汇编命令A

格式:

A[adr]

这里的[adr]表示此处的地址参数adr为任选项(但选择范围必须为0800H—0FFFH)。

无此参数时,系统将取默认值。

该规则下同。

功能:

完成单条指令的汇编操作,把产生出来的TEC—2机的执行代码放入对应的内存单元中。

命令名后的地址是头一条汇编语句的执行码的内存单元地址。

每条语句汇编完成之后,系统将相应修改地址值,以便正确处理下条汇编语句。

在应该输入汇编语句时,不给出汇编语句而直接回车,则结束A命令的运行过程。

若汇编中发现语法错误,用ˆ指明出错位置后请求重新给出正确语句。

要说明,这里的单条汇编功能不很完善,例如不支持语句标号,也不能使用伪指令等。

遇到这些问题,要求使用者直接使用机器码,并通过E命令将其送入相应内存单元。

⑵反汇编命令U

格式:

U[adr]

功能:

每次从指定的(或默认的)地址反汇编15条命令,并将结果显示在终端屏幕上。

反汇编完成之后,已将该命令的默认地址修改好。

接下来再键入不带参数的U命令,保证接着从上一次反汇编的最后一条语句之后继续反汇编。

⑶执行程序命令G

格式:

G[adr]

功能:

从指定的(或默认的)地址连续运行一个用户程序。

为了使程序执行后能返回监控程序,要求每个程序的最后一条指令应为RET指令。

⑷单指令执行程序命令T和P

格式:

P[adr]

T[adr]

功能:

从指定地址(或PC中的当前地址)开始单条执行程序指令。

通常情况下,每按一次T或P将执行一条指令。

T和P命令的区别是,T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。

每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。

由于P和T命令是通过设置断点来实现的,而在ROM区不能设置断点,故不能用它们来执行固化在ROM区中的监控程序。

⑸显示/修改寄存器内容的命令R

格式:

R[reg]

其中reg为寄存器名R0——R15或SP(R4),PC(R5),IP(R6),当R命令不带带寄存器名时,显示全部寄存器(包括SP,PC和IP)及状态寄存器的值,并反汇编当前PC所指的一条指令,其中状态的显示格式为:

“F=8位二进制数”,其各位的值分别对应于C、Z、V、S,INTE、P2、P1、P0的值,当R命令带有寄存器名时,先显示出该寄存器的值,若修改打入新值回车,否则只按回车即可。

⑹显示存储器内容的命令D

格式:

D[adr]

功能:

从指定(或默认)地址开始显示内存120个存储字的内容。

显示的格式:

最左一列4位的16进制数是本行中第一个字的地址,接下来的8列是4位的16进制的8个连续内存字的内容,最右一列是每个字节所对应的ASCⅡ字符。

当其值不为可显示字符的ASCⅡ码值时,用一个“.”字符标记。

连续的D命令,保证所显示内容前后正确的连续关系,即每次执行D命令,会将默认的地址值加上120。

TEC—2机通常采用字地址读写内存。

⑺修改存储器内容命令E

格式:

E[adr]

功能:

从指定(或默认)地址逐字显示每个内存字的内容,并等待用户打入一个新的值存回该内存单元。

若用户未打入新值就打了空格键,则该内存单元内容保持不变。

若在打入新值后跟空格键,则内存单元内容写成新值。

空格键表明要连续修改一片内存区,故接下来显示下一个单元的内容并等待修改。

打回车键,则会结束E命令的执行过程,若回车前打入一个新值,相应内存单元的内容也将被修改。

注:

进入监控程序的具体操作步骤:

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

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

3.将黑色的电源线一端接220V交流电源,另一端插在TH-union实验箱的电源插座里;

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

5.将TH-union实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16位),控制开关的功能在开关上、下方有标识:

开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意,其他实验相同;

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

7.在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1”或“2”,其它的设置一般不用改动,直接回车即可。

(具体步骤附后)

8.按一下“RESET”按键,再按一下“START”按键,主机上显示:

TEC-2000CRTMONITOR

Version1.0April2001

ComputerArchitecturLab.,TsinghuaUniversity

ProgrammedbyHeJia

实验二运算器实验

一、实验原理:

运算器是计算机中执行各种算术和逻辑运算操作的部件。

运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作。

运算器的组成除了必须的ALU单元外,寄存器和移位器也是必需。

寄存器用于提供操作数和存放运算结果,以节省访存时间;移位器可实现数据的移位功能,以扩展ALU的运算功能和数据传送的灵活性。

美国AMD公司生产的AM2901芯片是典型的运算器芯片。

1、AM2901的结构与组成

AM2901芯片是一个4位的,位片结构的、完整的运算器器件。

AM2901由ALU、输入多路选择器、输出选择门、寄存器组和移位器等器件组成,如图1-1所示,作为教学内容的实例具有很好的典型性。

2、AM2901各组成部分及其功能

1)ALU为4位算术逻辑单元,有8种运算功能,由外部送入3位信号I5,I4,I3的编码值来确定执行哪种功能。

2)存器组

AM2901具有由16个4位寄存器组成的寄存器组,作为通用寄存器组使用。

该寄存器组有两个4位地址译码器A和B,其中A译码器只具有读出数据功能,而B译码器具有读出和写入两种功能。

也就是说,该寄存器组具有两个数据输出端口,即A口和B口,输出的数据分别存入锁存器A和B;一个数据输入端口,即B口。

3)寄存器

4位,在乘除运算中可用来存放乘数或商,故称做乘商寄存器。

它本身具有移位功能,即可接受其本身左移一位或右移一位的值,它还可以接收ALU的输出值。

4)输入多路选择器

AM2901具有两个输入多路选择器R和S,用于为ALU提供两个操作数。

其中,R可选择D数据线来的数据或A锁存器的数据;而S可从A锁存器、B锁存器、Q寄存器3个来源选取数据。

两个操作数的组合由外部送来的3位控制信号I2、I1、I0的编码确定。

5)移位器

4位,用于对ALU的输出实现直送、左移或右移。

6)输出选择门

用于确定AM2901输出数据Y的来源。

输出数据Y有两个来源:

一个是ALU的运算结果F,另一个是直接来自A口。

输出数据Y的选择,以及ALU的运算结果F如何传送给B输入口或Q寄存器,是由外部送来的3位控制信号I8、I7、I6的编码值确定的。

3、为了控制AM2901运算器按我们的意图完成预期的运算操作功能,就必须向其提供相应的控制信号,包括:

用3组各3位的编码,分别用于选择ALU的运算功能,输入数据,结果处置方案,具体规定如表1-1、表1-2、表1-3所示。

表1-1选择8种运算表1-2选择ALU的8种输入数据组合

I5I4I3

运算类型

I2I1I0

R来源S来源

000

001

010

011

100

101

110

111

R+S

S-R

R-S

R∨S

R∧S

R∧S

R∨S

R∨S

000

001

010

011

100

101

110

111

AQ

AB

0Q

0B

0A

DA

DQ

D0

注:

D表示外部数据

表1-3选择运算器的8种结果的处置方案

I8I7I6

寄存器组Q寄存器Y输出

000

001

010

011

100

101

110

111

F→QF

F

F→BA

F→BF

F/2→BQ/2→QF

F/2→BF

2F→B2Q→QF

2F→BF

二、实验步骤

运算器部件的实验,要在教学计算机主板上进行,既可以在脱机方式下完成,也可以在联机方式下完成。

脱机方式是指使运算器部件完全脱离与计算机主机其他部件正常的连接关系,在完全孤立出来的运算器上进行的教学实验。

此时,只能通过数据开关提供参加运算的数据,通过微型开关提供操作运算器完成运算所必需的控制信号,通过信号指示灯观察运算结果,操作简单,实验结果清晰易理解。

联机方式是指在运算器部件与计算机主机保持连接关系,教学计算机可以正常执行指令的情况下进行的以运算器为重点的教学实验。

此时,可以通过指令提供参加运算的数据,通过控制器提供操作运算器完成运算所必需的控制信号,通过信号指示灯或者通过运行监控程序观察运算结果,操作略显复杂。

1、脱机实验

⑴打开实验箱电源开关。

⑵将五个控制开关分别置为10000

注:

五个控制开关从左至右分别是:

Step/Cntnu、Hndlns/MEMIns、Comloq/Microp、LinkMachi/LeaveMachine、8Bit/16Bit

即:

单步/连续、手动执行/程序存储、组合逻辑/微程序控制、联机/脱机、8位/16位

1:

代表上档功能,0:

代表下档功能

⑶将AAAA送入R0

①微型开关分别置为011000111001000000000000

注:

微型开关从左至右分别对应的控制信号是:

I8I7I6I5I4I3I2I1I0SSTA端口地址B端口地址SSHSCI

其中:

SST为状态寄存器接收,SSH为最底位进位,SCI为移位控制

②设置数据开关为AAAA(16进制)

③按START按钮

⑷将5555送入R1

①微型开关分别置为011000111001000000010000

②设置数据开关为5555(16进制)

③按START按钮

⑸R0+R1→R1

微型开关分别置为011000001001000000010000

2、联机实验

⑴将通讯线一端接实验箱上,另一端插头后接PC机任意COM口。

注:

这里PC机只是实验箱的输入输出设备。

⑵将五个控制开关分别置为00010。

⑶打开计算机,运行PCEC程序,选择所接COM口后按回车。

按F10进入主菜单,选择0,分别按实验箱上的RESET、START按钮,进入监控程序。

⑷屏幕出现提示符>,即可用A命令输入程序

>A2000

MOVR0,AAAA

MOVR1,5555

ADDR1,R0

RET

(5)用T命令观察运行结果。

三、实验要求

1、认真写出预习报告,包括实验用的全部数据,实验操作步骤等。

2、实验之后写出实验报告,包括实验过程中遇到的问题,解决方法,实验后的心得体会及对该次实验的建议与意见。

实验三内存储器部件实验

实验目的:

通过看懂教学计算机中已经使用的几个存储器芯片的逻辑连接关系和用于完成存储器容量扩展的几个存储器芯片的布线安排,在教学计算机上设计、实现并调试出存储器容量扩展的实验内容。

其最终要达到的目的是:

1.深入理解计算机内存储器的功能、组成知识;

2.深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;

思考并对比静态和动态存储器芯片在特性和使用场合等方面的同异之处。

实验说明:

教学计算机存储器系统由ROM和RAM两个存储区组成,分别由EPROM芯片(或EEPROM芯片)和RAM芯片组成。

TH-union教学计算机中还安排了另几个存储器器件插座,可以插上相应存储器芯片以完成存储器容量扩展的教学实验,为此必须比较清楚地了解:

1.TH-union教学机的存储器系统的总体组成及其连接关系;

2.TH-union教学机的有关存储器芯片、I/O接口芯片的片选信号控制和读写命令的给出和具体使用方法;

3.RAM和EPROM、EEPROM存储器芯片在读写控制、写入时间等方面的同异之处,并正确建立连线关系和在程序中完成正确的读写过程;

4.如何在TH-union教学机中使用扩展的存储器空间并检查其运行的正确性。

实验内容:

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

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

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

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

实验要求:

1.实验之前,应认真预先准备,写出实验步骤和具体设计内容,否则实验效率会特别低,一次实验时间根本无法完成实验任务,即使基本做对了,也很难说学懂了些什么重要教学内容;

2.实验过程中,应认真进行实验操作,既不要因为粗心造成短路等事故而损坏设备,又要仔细思考实验有关内容,提高学习的主动性和创造性,把自己想不太明白的问题通过实验理解清楚,争取最好的实验效果,力求达到教学实验的主要目的;

3.实验之后,应认真思考总结,写出实验报告,包括实验步骤和具体实验结果,遇到主要问题和分析与解决问题的思路。

实验报告中,还应写出自己的学习心得和切身体会,也可以对教学实验提出新的建议等。

实验报告要交给教师评阅并给出实验成绩。

实验步骤:

1.检查FPGA下方的插针要按下列要求短接:

标有“/MWR”“RD”的插针左边两个短接,标有“/MRD”“ GND”的插针右边两个短接,标有ROMLCS和RAMLCS的插针短接。

2.RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。

RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。

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

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

E2020

屏幕将显示:

2020内存单元原值:

按如下形式键入:

2020原值:

2222(空格)原值:

3333(空格)原值:

4444(空格)原值:

5555

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

D2020

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

2222333344445555

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

会发现原来置入到这几个内存单元的值已经改变,用户在使用RAM时,必须每次断电重启后都要重新输入程序或修改内存单元的值。

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

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

A2000

屏幕将显示:

2000:

按如下形式键入:

2000:

MVRDR0,AAAA

2002:

MVRDR1,5555

2004:

ANDR0,R1

2005:

RET

2006

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

T2000

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

T

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

T

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

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

G2000

运行输入的程序。

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

R

屏幕显示:

R0=0000R1=5555R2=……

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

3.将扩展的ROM芯片(27或28系列或28的替代产品58C65芯片)插入标有“EXTROMH”和“EXTROML”的自锁紧插座,要注意芯片插入的方向,带有半圆形缺口的一方朝左插入。

如果芯片插入方向不对,会导致芯片烧毁。

然后锁紧插座。

4.将扩展芯片右边的插针按下列方式短接:

将EXTROML芯片右上方的标有“WE”和“ALL”的插针下面两个短接,将它右边标有“TEC”“/CS”“FPGA”的三个插针左边两个短接,标有XTROMLCS的插针短接,标有“TEC”“OE”“GND”“FPGA”的四个插针中间的两个竖着短接。

5.在第四步中将标有“TEC”“/CS”“FPGA”的三个插针左边两个短接表示扩展的ROM的内存地址是从4000H开始,可用空间是4000H~5FFFH,用户可在这个范围内输入程序或改变内存单元的值。

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

6.将标有“DataBus15-8”和“DataBus7-0”的数据总线的指示灯下方的插针短接。

7.将标有“AdressBus15-8”和“AdressBus7-0”的地址总线的指示灯下方的插针短接。

下面以AT28C64B(或其他替代产品58C65芯片)为例,进行扩展EEPROM实验。

8.AT28C64B的读操作和一般的RAM一样,而其写操作,需要一定的时间,大约为1毫秒。

因此,需要编写一延迟子程序,在对EEPROM进行写操作时,调用该子程序,以完成正确的读写。

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

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

E5000

屏幕将显示:

5000内存单元原值:

按如下形式键入:

5000原值:

2424(按空格)原值:

3636(按空格)原值:

4848(按空格)原值:

5050

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

D5000

屏幕将显示5000H~507FH内存单元的值,从5000开始的连续四个内存单元的值依次为2424363648485050.

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

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

下面给出的程序,在5000H~500FH单元中依次写入数据0000H、0001H、…000FH。

从2000H单元开始输入主程序:

(2000)MVRDR0,0000

MVRDR2,0010;R2记录循环次数

MVRDR3,5000;R3的内容位16位内存地址

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

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

INCR0;R0加1

INCR3;R3加1

DECR2;R2减1

JRNZ2006;R2不为0跳转到2006H

RET

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

(2200)PUSHR3

MVRDR3,FFFF

(2203)DECR3

JRNZ2203

POPR3

RET

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

G2000

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

D5000

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

5000:

00000001000200030004000500060007

5008:

00080009000A000B000C000D000E000F。

思考:

1)为何能用E命令直接写AT28C64B的存储单元,而A命令则有时不正确?

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

注意:

实验完成后,取下扩展芯片,断开地址和数据总线的短路子,将FPGA下方的标有“/MWR”“RD”的插针改成右边两个短接。

四、实验要求

1、认真预习实验,熟悉主存储器的读写特性及对内存有关信号的推断。

2、实验后独立填写实验报告。

 

注:

HN58C65P-258192-wordX8-bitElectricallyErasableandProgrammableCMOSROM

HM6116LP-32048-wordX8bitHighSpeedCMOSStaticRAM

实验四微程序控制器部件实验

控制器部件是计算机的五大功能部件之一,其作用是向整机每个部件(包括控制器本身)提供协同运行的需要的控制信号.因而,控制器在计算机组成原理过程中是非常重要的内容,但学生在学习过程中,对其工作原理却常常感到难以理解.教师在讲述这一部分内容时,也常常觉得难以叙述清楚,通过本实验,轻而易举的解决了这一问题。

一、实验原理

控制器的设计实现有两种方式:

一种是微程序,另一种是组合逻辑线路,微程序控制器的工作原理,是用一条微指令的控制命令字段来提供一条机器指令的一个执行步骤所需要的控制信号,用这条微指令的下地址字段,指明下一条微指令在控制器存储器中的地址,以便从控制器存储器中读出下一条微指令.换句话说,每一条微指令对应一条机器指令的一个执行步骤。

1、微指令格式

微指令由下地址字段及控制字段组成.TH—UNION教学机的微指令格式如下:

其中高八位为下地址字段.其余各位为控制字段.

1)址形成逻辑

TH—UNION

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

当前位置:首页 > 工程科技 > 电子电路

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

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