计算机组成原理实验指导1Word格式.docx
《计算机组成原理实验指导1Word格式.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验指导1Word格式.docx(62页珍藏版)》请在冰豆网上搜索。
连续运行程序、采用组合逻辑控制器、联机、16位机
00010
连续运行程序、采用微程序控制器、联机、16位机
11110
单步运行程序、手动设置指令、采用组合逻辑控制器、联机、16位机
11010
单步运行程序、手动设置指令、采用微程序控制器、联机、16位机
1XX00
16位机、脱机运算器实验
TEC-XP教学机串口的状态寄存器
TEC-XP教学机是通过串口(可编程串行接口8251A)与PC连接的,在联机操作中,PC机对教学机的访问是通过对其数据端口和控制状态端口来完成的。
TEC-XP教学机的COM1口(左侧)的数据端口地址为80H,控制与状态口地址为81H;
COM2(右侧)的数据端口地址为82H,控制与状态口地址为83H。
TEC-XP教学机与PC机的联机操作方法
1、将TEC-XP教学机放在实验台上,连接好电源线,关上实验箱侧边的电源开关。
2、使用串行通信线连接TEC-XP教学机与PC机的串口。
(该串口连接已由实验室老师完成)
3、将TEC-XP教学机的工作模式选择开关设置为00110。
4、打开TEC-XP教学机的电源开关,检查面板上的发光二极管状态是否正常。
5、打开PC机,在D:
\大板可编程器件内容\P路径下找到PCEC16.EXE文件,并运行;
注意:
监控程序运行时需要选择连接串口,此时应选的是当前所连PC机的串口,而不是TEC-XP教学机的串口。
实验时可尝试选择串口1或串口2,其他设置一般不用改动,直接回车即可。
6、按下TEC-XP教学机的面板左下角的RESET和START按键,当主机上显示如下内容时,表示已进入TEC-XP教学机的的监控程序,可以开始联机实验。
TEC-XPCRTMONITOR
Version1.0April2001
ComputerArchitectureLab.,TsinghuaUniersity
ProgrammedbyHeJia
>
提示符“>
”是TEC-XP教学机监控程序的提示符。
TEC-XP教学机的监控命令
当TEC-XP教学机在联机工作方式下时,应使用PC来控制教学机的工作。
在PC机的监控状态下,监控命令与DOS系统的DEBUG命令相似,具体命令格式及含义如表2所示。
表2教学机的监控命令格式及含义
命令名称
命令格式
功能
汇编命令
A[adr]
输入单条指令,并将汇编之后的机器代码存入相应的内存单元中。
有错误提示,但功能并不完善
反汇编命令
U[adr]
从指定或默认地址开始反汇编15条指令,并将结果显示处理
执行程序命令
G[adr]
从指定或默认地址开始连续运行一个用户程序
单条指令执行命令
T[adr]
P[adr]
从命令指定或PC指定地址开始单条执行指令
显示/修改寄存器内容命令
R[reg]
当R命令不带参数时只是显示所有寄存器的内容;
当R命令带参数时显示指定寄存器的内容,并可修改其值
显示存储器内容命令
D[adr]
从指定或默认地址开始显示内存128个存储字的内容
修改存储器内容命令
E[adr]
从指定或默认地址开始逐字显示每个内存字的内容并等待用户键入一个新值存回该单元,用空格切换各个单元,用回车结束E命令的执行。
其中,adr表示直接地址,reg表示寄存器,均是可选项。
以上监控命令与8086汇编系统中的DEBUG命令名相同,但命令格式不同,请注意使用时区分清楚。
TEC-XP教学计算机的指令系统
TEC-XP教学计算机的指令系统中共有48条指令,包含基本的传送类指令、算术逻辑运算类指令、IO访问指令、转移控制类指令、子程序调用和返回指令等。
根据指令的不同功能,指令的操作数个数为0~3个,操作数可以使用立即数寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式等,但每条指令中的操作数寻址方式都是固定的,只能按照对应的格式使用,不能随意更改。
1、指令系统的分组
TEC-XP教学计算机中,按照每条指令的功能和实际的执行步骤,将指令分成了A、B、C、D共4组,每条指令的所属组详见具体的指令描述。
A组中的指令执行时,一般只是完成通用寄存器间的数据运算或传送,在取指后可一步完成。
B组中的指令,一般需要完成一次内存或I/O读、写操作,在取指后可两步完成:
第一步把要使用的地址传送到地址寄存器ARH、ARL中,第二步执行内存或I/O读写操作。
C组中的指令,在取指后可三步完成:
其中CALR在用两步读写内存后,第三步执行寄存器间的数据传递;
而其它指令在第一步置地址寄存器ARH、ARL,第二步读内存(即取地址操作数)、计算内存地址、置地址寄存器ARH、ARL,第三步读、写内存。
D组中的指令,完成两次读、写内存操作,在取指之后可四步完成。
2、指令的一般格式
该指令系统中包含有单字长指令(16位)和双字长指令(32位),其指令的一般格式如下所示。
1587430
操作码
目的寄存器号
源寄存器号
I/O端口地址/相对偏移量
立即数/绝对地址/变址偏移量
所有指令的操作码均为8位的,(记作IR15~IR8),每位的含义如下:
①IR15、IR14用于区分指令组:
0X表示A组,10表示B组,11表示C、D组;
C、D组的区分还要用IR11,IR11=0为C组,IR11=1为D组。
②IR13用于区分基本指令和扩展指令:
基本指令该位为0,扩展指令该位为1。
③IR12用于简化控制器实现,其值恒为0。
④IR11~IR8用于区分同一指令组中的不同指令。
若指令中使用寄存器寻址方式,则可使用的寄存器共有16个,分别为R0~R15,其中R4,R5,R6为专用寄存器,分别作为R4——堆栈指针;
R5——程序计数器PC;
R6——指令当前地址寄存器IP;
其余13个寄存器作为通用寄存器供用户编程用。
3、指令系统
下面按照指令字长和指令中操作数的个数,分类介绍每条指令,在以下描述中,使用默认的助记符如下:
SR―源操作数寄存器;
DR-目的操作数寄存器;
PC-程序计数器;
OP-指令操作码。
1单字、无操作数指令,共8条
158
70
OP
00000000
格式:
指令格式
含义
指令类型
PSHF
状态标志(C、Z、V、S、P1、P0)入栈
B组基本指令
POPF
弹出栈顶数据到状态标志寄存器
RET
子程序返回
CLC
清进位标志位C=0
A组扩展指令
STC
置进位标志位C=1
EI
开中断,置中断允许位INTE=1
DI
关中断,置中断允许位INTE=0
IRET
中断返回
D组扩展指令
2单字、单操作数指令,共21条
158
70
DR0000
0000SR
OFFSET
I/O端口
DECDR
DR←DR-1
A组基本指令
INCDR
DR←DR+1
SHLDR
DR逻辑左移(低位补0,高位移入C)
SHRDR
DR逻辑右移
(高位补0,低位移入C)
JROFFSET
无条件转移到ADR,ADR=原PC值+位移量
JRCOFFSET
C=1时,转移到ADR,ADR=原PC值+位移量
JRNCOFFSET
C=0时,转移到ADR,ADR=原PC值+位移量
JRZOFFSET
Z=1时,转移到ADR,ADR=原PC值+位移量
JRNZOFFSET
Z=0时,转移到ADR,ADR=原PC值+位移量
INI/O端口
R0←[I/O端口]
从外设I/O端口读入字节数据到R0低8位
OUTI/O端口
[I/O端口]←R0
R0低8位数据写入外设I/O端口
PUSHSR
SR入栈
POPDR
弹出栈顶数据到DR
RCLDR
DR与C循环左移
(C移入最低位,最高位移入C)
RCRDR
DR与C循环右移
(C移入最高位,最低位移入C)
ASRDR
DR算术右移
(最高位不变,最低位移入C)
NOTDR
DR求反,即DR←/DR
JMPRSR
无条件转移到SR指向的地址
CALRSR
调用SR指向的子程序
C组扩展指令
JRSOFFSET
S=1时,转移到ADR,ADR=原PC值+位移量
JRNSOFFSET
S=0时,转移到ADR,ADR=原PC值+位移量
3单字、双操作数指令,共12条
7430
DR
SR
ADDDR,SR
不带进位加
SUBDR,SR
不带进位减
ANDDR,SR
逻辑与
CMPDR,SR
比较(SR‐DR的结果影响标志位)
XORDR,SR
逻辑异或
TESTDR,SR
测试(做与操作,但不改变操作数,只影响标志位)
ORDR,SR
逻辑或
MVRRDR,SR
寄存器间传送数据
LDRRDR,[SR]
DR←[SR]
STRR[DR],SR
[DR]←SR
ADCDR,SR
带进位加
SBBDR,SR
带进位减
4双字、单操作数指令,2条
ADR
JMPAADR
无条件转移到地址ADR
CALAADR
调用首地址在ADR的子程序
D组基本指令
5双字、双操作数指令,2种格式
格式1:
DATA
基本指令
MVRDDR,DATA
DR←DATA
LDRADR,[ADR]
DR←[ADR]
STRA[ADR],SR
[ADR]←SR
DRSR
格式2:
LDRXDR,OFFSET[SR]
DR←[OFFSET+SR]
STRXOFFSET[DR],SR
[OFFSET+DR]←SR
实验项目设置与安排
计算机组成原理实验一共有5个实验,总共18个学时。
实验项目
学时安排
实验一TEC-XP教学机环境熟悉
2学时
实验二运算器实验
4学时
实验三存储器实验
实验四微程序控制器实验
实验五TEC-XP汇编语言程序设计
实验六中断实验
合计
18学时
实验注意事项
1、硬件芯片级实验,避免用手、金属物直接碰触芯片,以防静电损坏芯片;
2、进行硬件连接、或长时间不用时,请关闭实验箱电源;
3、按时到达实验室(608),认真实验,做好数据记录,课下完成实验报告;
实验目的
1、学习和了解TEC-XP教学实验系统监控命令的用法;
2、学习和了解TEC-XP教学实验系统的指令系统;
3、学习和了解TEC-XP教学实验系统汇编程序设计方法。
实验内容
1、熟悉TEC-XP教学机与PC机的联机操作过程;
2、练习常用的TEC-XP教学机监控命令;
3、在监控状态下输入给定的汇编程序,进行单步跟踪执行,并观察结果;
4、编写指定功能的汇编语言程序,并调试通过。
实验要求
使用教学机前,熟悉TEC-XP教学机的各个组成部分及其使用方法。
实验学时
实验步骤
1、完成TEC-XP教学机与PC机的联机操作
详细步骤见概述部分的“脱机和联机工作方式”。
2、练习常用的TEC-XP教学机监控命令
(1)R命令(查看或修改寄存器内容)
在命令行提示符状态下输入:
R↙;
显示寄存器内容
RR0↙;
修改寄存器R0的内容,再用R命令查看修改的结果。
(2)用D命令显示存储器的内容
D2000↙;
显示从地址2000H开始的128个字的内容;
连续使用不带参数的D命令,起始地址会自动加128(即80H)。
(3)用E命令修改存储器的内容
E2000↙
屏幕显示地址2000单元的原有内容,可输入更改值;
然后再用D命令显示修改的结果。
用E命令连续修改内存单元的值时,每修改完一个,按一下空格,系统会自动给出下一个内存单元的值,等待修改;
按回车则退出E命令。
3、输入给定的汇编程序,单步跟踪执行,并观察结果
(1)输入如下形式的程序,请单步跟踪执行,说明程序功能。
2000:
MVRDR0,AAAA;
MVRD与R0之间有且只有一个空格,其他同
2002:
MVRDR1,5555
2004:
ADDR0,R1
2005:
ANDR0,R1
2006:
RET↙;
程序的最后一个语句,必须为RET指令
2007:
↙
若输入有误,系统会给出提示并显示出错地址,只需在该地址用A命令重新输入正确的指令即可。
(2)输入如下形式的程序,请单步跟踪执行,说明程序功能。
2000:
IN80;
输入数据保存于R0寄存器的低8位中
2001:
CMPR0,30
2002:
JRCEXIT
2003:
CMPR0,39
2004:
JRNCEXIT
2005:
OUT80;
R0->
[I/OPORT]
2006:
RET↙
2007:
↙
实验报告要求
本次实验需完成实验报告一份。
实验二运算器实验
1、深入了解AM2901运算器的功能与具体用法;
2、深化运算器部件的组成、设计、控制与使用等知识。
在脱机方式下,对于给定指令分析其执行过程中运算的步骤,通过对AM2901运算器所需控制信号的设置,使之完成运算,并核对运算结果。
1.实验前,认真了解AM2901运算器的基本结构,预习所需实验的内容,并在课前填写实验步骤表格,对于实验数据和实验结果进行预期性的分析,以提高实验效率;
2.实验过程中,要按正确流程操作,防止损坏设备,分析可能遇到的各种现象,判断结果是否正确,记录运行结果。
3.实验之后,认真写出实验报告,包括对遇到的各种现象的分析,实验步骤和实验结果。
实验原理
图2-1Am2901的数据通路
1、运算器数据通路
TEC-XP教学机的运算器主要采用4片Am2901芯片级联组成,每片Am2901芯片实现4位运算,4片芯片级联成16位的运算器。
Am2901芯片的组成包括:
1个4位的算术逻辑单元ALU、16个4位的通用寄存器、1个4位的乘商寄存器Q和若干个多路选择开关。
Am2901的数据通路如图2-1所示。
(1)算术逻辑单元ALU
ALU有两个数据输入端R和S。
R端的数据来源有三个——寄存器A、数据线D、数值0;
S端的数据来源有四个——寄存器A、寄存器B、乘商寄存器Q、数值0。
在RS的各种组合中除去没有意义的和重复的,只有8种有效的组合。
ALU的数据来源由控制信号I2I1I0决定,其控制方式如表2-1所示。
ALU可完成两个操作数的加、减、与、或、异或等多种操作,操作类型的控制有控制信号I5I4I3决定,其控制方式如表2-2所示。
ALU若要实现乘除等其他运算,可使用串行算法来完成。
ALU的输出结果可保存到通用寄存器、乘商寄存器Q,并且可以将其值乘除2之后再保存,该过程控制由I8I7I6和SSH控制,其控制方式如表2-3、表2-5所示。
ALU根据其运算的结果会产生4个标志位——符号标志位F3、零标志位F=0、溢出标志位OVR和进位标志位Cn+4。
ALU运算后标志位设置可有多种不同的方式,其设置控制由SST控制信号决定,其控制方式如表2-6所示。
(2)通用寄存器组
Am2901中的通用寄存器组是由16个寄存器构成,具有双端口读写电路。
可以通过A口、B口输入的地址(4位地址)选择寄存器,将其值送入A、B锁存器。
其中A口地址指定的寄存器是只读的,B口地址指定的寄存器是可读写的。
A、B锁存器可作为ALU的输入数据,ALU输出的结果值也可以保存到B口指定的寄存器中,而且在写寄存器时,可以通过通用寄存器组入口处的三选一多路开关,选择写入ALU结果值,或其左移(乘2)、右移(除2)之后的结果。
(3)乘商寄存器
乘商寄存器Q是为配合ALU的乘除运算而设置的。
该寄存器输入端有三选一多路开关,可选择ALU输出结果、或乘商寄存器Q本身的内容作为其输入数据,同时还可以将这两个输入值左移(乘2)、右移(除2)之后,再送入Q中。
(4)最低进位信号Cin
Am2901的基本运算是加法电路,其减法功能的实现是通过对减数求补而完成的。
因此,在ALU运算时,应使用SCI控制位设置最低进位信号Cin的状态,具体控制方式见表2-4。
2、Am2901的级联结构
一片4位的Am2901芯片的引脚信号如图2-2所示。
其中A3~A0、B3~B0用于输入选中的通用寄存器地址(0000~1111分别对应于R0~R15);
I8~I0用于运算过程的控制信号;
D3~D0用于输入外部数据;
Y3~Y0用于输出运算的结果;
CP为时钟信号;
/OE为选通信号;
RAM3、RAM0为运算结果左右移时的移出位;
Q3、Q0为乘商寄存器Q左右移时的移出位;
Cy、F=0、Over、F3分别为进位标志位、零标志位、溢出标志位、符号标志位;
Cin为外部输入的最低进位位。
图2-2Am2901芯片的引脚信号
TEC-XP教学机的16位运算器是采用4片Am2901芯片级联而成的,各芯片之间采用串行进位方式,具体连接图如图2-3所示。
该运算器进行运算时,需要对4个芯片加同样的A、B口地址、I8~I0控制信号,通过对选定的16位通用寄存器(每4位分属4个芯片)、或外部数据D的运算,产生Y输出,以及标志位状态。
图2-34片Am2901芯片的级联结构
3、Am2901时钟信号的作用
在Am2901的每个ALU操作周期内,ALU各部件的执行时间是不同的,具体操作过程如图2-4所示
图2-4Am2901时钟信号的作用
4、实验控制信号开关说明
该实验是在完全脱机的方式下完成的。
实验过程中,使用实验箱面板下方标有microswitch1和microswitch2的两个红色开关(控制信号顺序如图2-5所示),设置24位的运算控制信号。
运算完成后,通过实验箱面板中间位置的发光二极管观察运算结果。
实验过程中可能会用到外部输入数据,则可通过实验箱面板右下方的16个黑色数据开关设置。
图2-5Microswitch开关信号顺序
5、指令举例
指令1:
MVRDR0,0FFFFH
分析:
(1)该指令是使用立即数为寄存器赋值的,立即数应从数据总线拨入,经ALU传送至目的寄存器R0,因此,ALU的数据来源应选择D、0,即I2-I0取值为111。
(2)该赋值指令中的数据必须经过ALU才可写入通用寄存器,可使用FFFFH+0→R0的操作,因此,ALU的运算类型应选择算术加;
I5-I3取值为000。
(3)ALU的运算结果应保存至B口地址指定的通用寄存器中,即I8-I6取值为011,同时B口地址输入R0的地址(0000)。
(4)其余信号:
A口