TEC+XP+学生实验讲义郝尚富.docx
- 文档编号:30155806
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:52
- 大小:413.33KB
TEC+XP+学生实验讲义郝尚富.docx
《TEC+XP+学生实验讲义郝尚富.docx》由会员分享,可在线阅读,更多相关《TEC+XP+学生实验讲义郝尚富.docx(52页珍藏版)》请在冰豆网上搜索。
TEC+XP+学生实验讲义郝尚富
计算机组成与结构
(面向信息科学与工程学院各专业)
主编:
郝尚富
实
验
讲
义
河北北方学院信息科学与工程学院
2010.11
目录
实验一基础汇编语言程序设计1
实验二脱机运算器实验13
实验三存储器部件教学实验16
实验四微程序控制器实验21
实验五I/O口扩展实验30
实验六中断实验32
附录一:
教学机系统结构图36
附录二TEC-XP16系统各功能部件之间的连接关系和信息传送路径37
附录三TEC-XP16系统教学实验简明操作卡38
附录四指令汇总表39
附录五基本指令执行流程框图40
附录六扩展指令执行流程框图41
附录七微程序表42
实验一基础汇编语言程序设计
1.1实验目的:
1.学习和了解TEC-XP教学实验系统监控命令的用法;
2.学习和了解TEC-XP教学实验系统的指令系统;
3.学习简单的TEC-XP教学实验系统汇编程序设计;
1.2实验内容:
1.学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC.
2.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;
3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况;
1.3实验步骤
1.3.1完成TEC-XP教学计算机与PC机的硬件连接:
1.将TEC-XP放在实验台上,打开实验箱的盖子,确定电源处于断开状态;
2.将黑色的电源线一端接220V交流电源,另一端插在TEC-XP实验箱的电源插座里;
3.取出通讯线,将通讯线的9芯插头接在TEC-XP实验箱上的串口1上,,另一端接到PC机的“COM1”或“COM2”(建议用COM2)串口上;
4.将TEC-XP实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在找个实验中开关应置为00110(连续、内存读指令、组合逻辑(或微程序)、联机、16位)。
5.拨动教学计算机右侧面的船形开关打开电源,船形开关和5V电源指示灯亮。
特别注意:
连接电源线和通讯线前TEC-XP实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP实验系统上的芯片和PC机的串口造成损害。
1.3.2实现仿真终端软件与教学计算机的联接。
1.打开PC机电源启动计算机;
2.双击桌面上的PCEC16图标,出现如下图所示的界面:
3.
系统默认选择串口1,用户可根据实际情况选择串口1或是串口2(这里的串口指的是和TEC-XP教学实验系统相连的PC机的串口),按回车后出现如图界面:
4.
图中是系统设定的一些传输参数,建议用户不要改动,直接回车。
按一下教学计算机上的“RESET”按钮放开后再按一下“START”按钮,出现界面如图所示:
5.此时表明TEC-XP机器联机通讯正常。
1.3.3实验注意事项:
1.连接电源线和通讯线前TEC-XP实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP实验系统上的芯片和PC机的串口造成损害;
2.五个黑色控制开关的功能示意图如下:
单步手动置指令组合逻辑联机8位
上面
下面
连续从内存读指令微程序脱机16位
3.几种常用的工作方式(开关拨到上方表示为1,拨到下方为0;)
工作方式
5个拨动开关
连续运行程序、组合逻辑控制器、联机、16位机
00110
连续运行程序、微程序控制器、联机、16位机
00010
单步、手动置指令、组合逻辑控制器、联机、16位机
11110
单步、手动置指令、微程序控制器、联机、16位机
11010
16位机、脱机运算器实验
1XX00
1.3.4监控命令的使用:
1.用R命令查看寄存器内容或修改寄存器的内容
1)在命令行提示符状态下输入:
R↙;显示寄存器的内容
注:
寄存器的内容在运行程序或执行命令后会发生变化。
2)在命令行提示符状态下输入:
RR0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格
主机显示:
寄存器原值:
_
在该提示符下输入新的值0036
再用R命令显示寄存器内容,则R0的内容变为0036。
2.用D命令显示存储器内容
在命令行提示符状态下输入:
D2000↙
会显示从2000H地址开始的连续128个字的内容;
连续使用不带参数的D命令,起始地址会自动加128(即80H)。
3.用E命令修改存储器内容
在命令行提示符状态下输入:
E2000↙
屏幕显示:
2000地址单元的原有内容:
光标闪烁等待输入
输入0000
依次改变地址单元2001~2005的内容为:
11112222333344445555
注意:
用E命令连续修改内存单元的值时,每修改完一个,按一下空格键,系统会自动给出下一个内存单元的值,等待修改;按回车键则退出E命令。
4.用D命令显示这几个单元的内容
D2000↙
可以看到这六个地址单元的内容变为000011112222333344445555。
5.用A命令键入一段汇编源程序,主要是向累加器送入数据和进行运算,执行程序并观察运行结果。
1)在命令行提示符状态下输入:
A2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始
屏幕将显示:
2000:
输入如下形式的程序:
2000:
MVRDR0,AAAA;MVRD与R0之间有且只有一个空格,其他指令相同
2002:
MVRDR1,5555
2004:
ADDR0,R1
2005:
ANDR0,R1
2006:
RET;程序的最后一个语句,必须为RET指令
2007:
(直接敲回车键,结束A命令输入程序的操作过程)
若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。
2)用U命令反汇编刚输入的程序
在命令行提示符状态下输入:
U2000↙(在相应的地址处会得到输入的指令及其操作码)
注:
连续使用不带参数的U命令时,将从上一次反汇编的最后一条语句之后接着继续反汇编。
3)用G命令运行前面键入的源程序
G2000↙
程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0和R1的值均为5555H,说明程序运行正确。
4)用P或T命令,单步执行这段程序,观察指令执行结果
在命令行提示符状态下输入:
T2000↙
寄存器R0被赋值为AAAAH
T↙
寄存器R1被赋值为5555H
T↙
做加法运算,和放在R0,R0的值变为FFFFH
T↙
做与运算,结果放在R0,R0的值变为5555H
用P命令执行过程同上。
注:
T总是执行单条指令,但执行P命令时,则把每一个CALL语句连同被调用的子程序一次执行完成。
T、P命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。
1.3.5TEC-XP教学机指令系统
TEC-XP教学机实现了29条基本指令,用于编写教学机的监控程序和支持简单的汇编语言程序设计。
同时保留了19条扩展指令,供学生在教学实验中完成对这些指令的设计与调试。
按照指令的功能和它们的执行步骤,可以把该机的指令划分为如下4组。
A组:
基本指令ADD、SUB、AND、OR、XOR、CMP、TEST、MVRR、DEC、INC、SHL、SHR、JR、JRC、JRNC、JRZ、JRNZ;扩展指令ADC、SBB、RCL、RCR、ASR、NOT、CLC、STC、EI、DI、JRS、JRNS、JMPR
B组:
基本指令JMPA、LDRR、STRR、PUSH、POP、PUSHF、POPF、MVRD、IN、OUT、RET
C组:
扩展指令CALR、LDRA、STRA、LDRX、STRX
D组:
基本指令CALA;扩展指令IRET
教学机的指令格式支持单字和双字指令,第一个指令字的高8位是指令操作码字段,低8位和双字指令的第二个指令字是操作数、地址字段,分别有3种用法,如下图所示。
操作码
DR
SR
IO端口地址/相对偏移量(OFFSET)
立即数/直接内存地址/变址偏移量
这8位指令操作码(记作“IR15~IR8”),含义如下:
4.IR15、IR14用于区分指令组:
0X表示A组,10表示B组,11表示C、D组;C、D组的区分还要用IR11,IR11=0为C组,IR11=1为D组。
5.IR13用于区分基本指令和扩展指令:
基本指令该位为0,扩展指令该位为1;
6.IR12用于简化控制器实现,其值恒为0;
7.IR11~IR8用于区分同一指令组中的不同指令。
教学机的指令根据指令字长、操作数不同可划分为如下6种指令格式:
8.单字、无操作数指令:
格式:
操作码
00000000
基本指令:
PSHF;状态标志(C、Z、V、S、P1、P0)入栈
POPF;弹出栈顶数据送状态标志寄存器
RET;子程序返回
扩展指令:
CLC;清进位标志位C=0
STC;置进位标志位C=1
EI;开中断,置中断允许位INTE=1
DI;关中断,置中断允许位INTE=0
IRET;中断返回
9.单字、单操作数指令:
格式:
操作码
DR0000
0000SR
OFFSET
I/OPORT
基本指令:
DECDR;DR←DR-1
INCDR;DR←DR+1
SHLDR;DR逻辑左移,最低位补0,最高位移入C
SHRDR;DR逻辑右移,最高位补0,最低位移入C
JROFFSET;无条件跳转到ADR,ADR=原PC值+OFFSET
JRCOFFSET;当C=1时,跳转到ADR,ADR=原PC值+OFFSET
JRNCOFFSET;当C=0时,跳转到ADR,ADR=原PC值+OFFSET
JRZOFFSET;当Z=1时,跳转到ADR,ADR=原PC值+OFFSET
JRNZOFFSET;当Z=0时,跳转到ADR,ADR=原PC值+OFFSET
INI/OPORT;R0←[I/OPORT],从外设I/OPORT端口读入数据到R0
OUTI/OPORT;[I/OPORT]←R0,将R0中的数据写入外设I/OPORT端口
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指向的子程序
JRSOFFSET;当S=1时,跳转到ADR,ADR=原PC值+OFFSET
JRNSOFFSET;当S=0时,跳转到ADR,ADR=原PC值+OFFSET
10.单字、双操作数指令:
格式:
操作码
DR
SR
基本指令:
ADDDR,SR;DR←DR+SR
SUBDR,SR;DR←DR-SR
ANDDR,SR;DR←DRandSR
CMPDR,SR;DR-SR
XORDR,SR;DR←DRxorSR
TESTDR,SR;DRandSR
ORDR,SR;DR←DRorSR
MVRRDR,SR;DR←SR
LDRRDR,[SR];DR←[SR]
STRR[DR],SR;[DR]←SR
扩展指令:
ADCDR,SR;DR←DR+SR+C
SBBDR,SR;DR←DR-SR-C
11.双字、单操作数指令:
格式:
操作码
00000000
ADR
基本指令:
JMPAADR;无条件跳转到地址ADR
CALAADR;调用首地址在ADR的子程序
12.双字、双操作数指令:
格式1:
操作码
DR0000
0000SR
DATA
基本指令:
MVRDDR,DATA;DR←DATA
扩展指令:
LDRADR,[ADR];DR←[ADR]
STRA[ADR],SR;[ADR]←SR
格式2:
操作码
DR
SR
ADR
扩展指令:
LDRXDR,OFFSET[SR];DR←[OFFSET+SR]
STRXDR,OFFSET[SR];[OFFSET+SR]←[DR]
例1:
设计一个小程序,用次数控制在终端屏幕上输出'0'到'9'十个数字符。
<1>在命令行提示符状态下输入:
A2020↙
屏幕将显示:
2020:
从地址2020H开始输入下列程序:
2020:
MVRDR2,00OA;送入输出字符个数
2022:
MVRDR0,0030;“0”字符的ASCII码送寄存器R0
2024:
OUT80;输出保存在R0低位字节的字符
2025:
DECR2;输出字符个数减1
2026:
JRZ202E;判10个字符输出完否,已完,则转到程序结束处
2027:
PUSHR0;未完,保存R0的值到堆栈中
2028:
IN81;查询接口状态,判字符串行输出完成否,
2029:
SHRR0;
202A:
JRNC2028;未完成,则循环等待
202B:
POPR0;已完成,准备输出下一字符并从堆栈恢复R0的值
202C:
INCR0;得到下一个要输出的字符
202D:
JR2024;转去输出字符
202E:
RET
202F:
↙
<2>用“G”命令运行程序
在命令行提示符状态下输入:
G2020↙
执行结果为:
0123456789
思考题:
1.若把IN81,SHRR0,JRNC2028三个语句换成4个MVRRR0,R0语句,该程序执行过程会出现什么现象?
试分析并实际执行一次。
2.若要求在终端屏幕上输出'A'到'Z'共26个英文字母,应如何修改程序?
请验证之。
例2:
从键盘上连续打入多个属于‘0’到‘9’的数字符并在屏幕上显示,遇到非数字字符结束输入过程。
<1>在命令行提示符状态下输入:
A2040↙
屏幕将显示:
2040:
从地址2040H开始输入下列程序:
(2040)MVRDR2,0030;用于判数字符的下界值
MVRDR3,0039;用于判数字符的上界值
(2044)IN81;判键盘上是否按了一个键,
SHRR0;即串行口是否有了输入的字符
SHRR0
JRNC2044;没有输入则循环测试
IN80;输入字符到R0
MVRDR1,00FF
ANDR0,R1;清零R0的高位字节内容
CMPR0,R2;判输入字符≥字符'0'否
JRNC2053;为否,则转到程序结束处
CMPR3,R0;判输入字符≤字符'9'否
JRNC2053;为否,则转到程序结束处
OUT80;输出刚输入的数字符
JMPA2044;转去程序前边2044处等待输入下一个字符
(2053)RET
<2>在命令行提示符状态下输入:
G2040↙
光标闪烁等待键盘输入,若输入0-9十个数字符,则在屏幕上回显;若输入非数字符,则屏幕不再显示该字符,出现命令提示符,等待新命令。
思考题,本程序中为什么不必判别串行口输出完成否?
设计打入'A'~'Z'和
'0'~'9'的程序,遇到其它字符结束输入过程。
例3:
计算1到10的累加和。
<1>在命令行提示符状态下输入:
A2060↙
屏幕将显示:
2060:
从地址2060H开始输入下列程序:
(2060)MVRDR1,0000;置累加和的初值为0
MVRDR2,00OA;最大的加数
MVRDR3,0000
(2066)INCR3;得到下一个参加累加的数
ADDR1,R3;累加计算
CMPR3,R2;判是否累加完
JRNZ2066;未完,开始下一轮累加
RET
<2>在命令行提示符状态下输入:
G2060↙
运行过后,可以用R命令观察累加器的内容。
R1的内容为累加和。
结果为:
R1=0037R2=00OAR3=00OA
例4:
设计一个程序在显示器上循环显示95个(包括空格字符)可打印字符。
<1>在命令行提示符状态下输入:
A20A0↙
屏幕将显示:
20A0:
从地址20A0H开始输入下列程序:
A20A0;从内存的20A0单元开始建立用户的第一个程序
20A0:
MVRDR1,7E;向寄存器传送立即数
20A2:
MVRDR0,20;
20A4:
OUT80;通过串行接口输出R0低位字节内容到显示器屏幕
20A5:
PUSHR0;保存R0寄存器的内容到堆栈中
20A6:
IN81;读串行接口的状态寄存器的内容
20A7:
SHRR0;R0寄存器的内容右移一位,最低位的值移入标志位C
20A8:
JRNC20A6;条件转移指令,当标志位C不是1时转到20A6地址
20A9:
POPR0;从堆栈中恢复R0寄存器的原内容
20AA:
CMPR0,R1;比较两个寄存器的内容是否相同,相同则标志位Z=1
20AB:
JRZ20A0;条件转移指令,当标志位Z为1时转到20A0地址
20AC:
INCR0;把R0寄存器的内容增加1
20AE:
JR20A4;无条件转移指令,一定转移到20A4地址
20AF:
RET;子程序返回指令,程序结束
<2>在命令行提示符状态下输入:
G20A0↙
运行过后,可以观察到显示器上会显示出所有可打印的字符。
实验二脱机运算器实验
2.1实验目的
深入了解AM2901运算器的功能与具体用法,4片AM2901的级连方式,深化运算器部件的组成、设计、控制与使用等知识。
2.2实验说明
脱机运算器实验,是指让运算器从教学计算机整机中脱离出来,只能通过开关、按键控制教学机的运算器完成指定的运算功能,并通过指示灯观察运算结果。
下面先把前边讲过的、与该实验直接有关的结论性内容汇总如下。
1.12位微型开关的具体控制功能分配如下:
A口、B口地址:
送给AM2901器件用于选择源与目的操作数的寄存器编号;
I8-I0:
选择操作数来源、运算操作功能、选择操作数处理结果和运算器输出内容的3组3位的控制码;
SCi、SSH和SST:
用于确定运算器最低位的进位输入、移位信号的入/出和怎样处理AM2901产生的状态标志位的结果。
2.开关位置说明:
做脱机运算器实验时,要用到提供24位控制信号的微动开关和提供16位数据的拨动开关。
微动开关是红色的,一个微动开关可以提供12位的控制信号,标有microswitch1和microswitch2;数据开关是黑色的,左边的标有SWH的是高8位,右边的标有SWL的是低8位。
微动开关与控制信号对应关系见表(由左到右):
Microswitch1
Microswitch2
I8-I6
I5-I3
I2-I0
SST
SSH
SCI
BPORT
APORT
脱机运算器实验的环境图:
TEC-XP16系统脱机运算器实验微型开关各字段的控制功能表:
运算器组成线路和信息连接关系图:
2.3实验步骤
1.将教学机左下方的5个拨动开关置为1XX00(单步、16位、脱机);先按一下“RESET”按键,再按一下“START”按键,进行初始化。
2.按下表所列的操作在机器上进行运算器脱机实验,将结果填入表中:
其中D1取为0101H,D2取为1010H;通过两个12位的红色微型开关向运算器提供控制信号,通过16位数据开关向运算器提供数据,通过指示灯观察运算结果及状态标志。
运算
I8-I0
SST
SSH
SCi
B
A
压START前
压START后
ALU输出
CZVS
ALU输出
CZVS
*D1+0->R0
011000111
001
00
00
0000
不用
0101
随机
0101
0000
*D2+0->R1
011000111
001
00
00
0001
不用
1010
0000
1010
0000
R0+R1->R0
011000001
001
00
00
0000
0001
1111
0000
2121
0000
RO-R1->R0
011001001
001
00
01
0000
0001
0101
0000
F0F1
1000
R1-R0->R1
011001001
001
00
01
0001
0000
0F0F
1000
0E0E
1000
R0∨R1->R0
011011001
001
00
00
0001
0000
0F0F
1000
0F0F
1000
R0∧R1->R0
011100001
001
00
00
0000
0001
0101
1000
0101
1000
R0≮R1->R0
011110001
001
00
00
0000
0001
0E0E
1000
0101
1000
┘(R0≮R1)->R0
011111001
001
00
00
0000
0001
FEFE
1000
0E0E
1001
2*R0->R0
111000011
001
00
00
0000
不用
FEFE
1001
FDFC
0001
R0/2->R0
101000011
001
00
00
0000
不用
FDFC
0001
7EFE
0001
注:
用*标记的运算,表示D1、D2的数据是由拨动开关SW给出的,开关给的是二进制的信号,注意二进制和十六进制间的转换。
按“START”按键之前,ALU输出的是计算结果,参照ALU的操作周期的时序可知A、B口数据锁存是在时钟的下降沿,通用寄存器的接收是在低电平,所以要想寄存器接收ALU的计算结果必须按一次“START”按键。
实验三存储器部件教学实验
3.1实验目的
1.深入理解计算机内存储器的功能、组成知识;
2.深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式;
3.2实验说明
教学计算机存储器系统由ROM和RAM两个存储区组成,分别由EPROM芯片(或EEPROM芯片)和RAM芯片构成。
ROM存储区选用4片长度8位、容量8KB的58C65芯片实现,RAM存储区选用2片长度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TEC XP 学生 实验 讲义