计算机组成与结构 TEC+XP+学生实验讲义 (郝尚富)

2018-11-01 20:50

2002:OUT A1 2005:OUT A1 2007:SHR R0 2008: SHR RO

;将R0的值输出到COM2口的8251中的寄存器中 ;将R0的值输出到COM2口的8251中的寄存器中 ;即串行口是否有了输入的字符

2003:MVRD R0,0037 ;给R0赋值0037

2006:IN 81 ;检查本机键盘是否按了一个键。80,81是COM1的数据口和控制口 2009:JRNC 200D ;没有,则转去检查扩展接口的键盘有没有输入 200A:IN 80 200C:OUT A0

;若本机键盘有输入则接收该字符

200B: OUT 80 ;将键盘输入的字符在本机输出

;将从键盘输入的字符输出经扩展串口送到另一台教学机输出

200D: IN A1 ;检查扩展串口相连的另一台教学机对应的PC键盘上是否按键, 200E: SHR RO ;即串行口是否有了输入的字符 200F: SHR R0

2010: JRNC 2006 ;没有,则转去判本机键盘是否有输入 2011:IN A0 ;若有,则接收 2012: OUT 80 ;在本机输出 2013:JR 2006 2014: RET

该程序完成两台教学计算机的第 2 个串行接口扩展操作并完成该串口初始化,启动两台教学机,都运行这个程序,则两个键盘的输入同时显示在两个屏幕上,实现的是双机的双向通讯功能。

实验六 中断实验

5.1 实验目的

学习和掌握中断产生、响应、处理等技术; 5.2 实验说明

1. 要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须在中断服务程序中执行EI开中断命令。

2. 教学机的中断系统共支持三级中断,由三个无锁按键确定从右到左依次为一、二、三级中断,对应的P1、P0的编码分别是01、10、11,优先级也依次升高。这决定了它们的中断向量(即中断响应后,转去执行的程序地址)为XXX4、XXX8、XXXC; 5.3 实验内容

??PAGE ??46??

1.确定中断向量表地址。中断向量表的高12位由硬件布线确定为(0010 0100 0000)。三级中断对应的中断向量为2404H、2408H、240CH。当有中断请求且被响应后,将执行存放在该中断的中断向量所指向的内存区的指令。

2.填写中断向量表。在上述的2404H、2408H、240CH地址写入三条JR 转移指令,JR指令的OFFSET是偏移量,其值是要转向的地址的值减去该条转移指令的下一条指令的地址的值得到的,该值的范围在-128~+127之间。但在PCEC16中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。

3. 编写中断服务程序。中断服务程序可以放在中断向量表之后,中断服务程序可实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符。

4. 写主程序。可编写一死循环程序,要求先开中断。 5.4 实验步骤

置控制开关为11010(单步、手动置指令、微程序、联机、16位)

1. 填写中断向量表。

1) 选择3级中断的中断向量为2404H、2408H、240CH。

2) 中断向量一共有16位,高12位由硬件布线决定为:0010 0100 0000,后四位为P1P000, P1P0 由按下的无锁按键(中断源)决定,分别为01、10、11,所以中断向量的16位为2404、2408、240C。

3) 填写中断向量表:

从2404H单元开始输入下面的程序

(2404)JR 2420 ;跳转到中断服务程序 (2408)JR 2430 ;跳转到中断服务程序 (240C)JR 2440 ;跳转到中断服务程序

2. 编写中断服务程序。

该中断服务程序,先开中断,显示字符“BI”和对应的中断优先级“1”、“2”或“3”后,等待从键盘输入一个字符。在键盘输入一个字符后,显示该字符和字符“EI”,然后退出当前中断服务程序,返回中断断点,继续执行。

用A、E命令从2420H单元开始输入下面的程序(标有*的语句表示要用E命令输入) 2420:PUSH R0 ;R0进栈 2421:PUSH R3 ;R3进栈

2422:MVRD R3,31 ;将字符‘1’的ASCII码送寄存器R3 2424:JR 2450

2430:PUSH R0 ;R0进栈 2431:PUSH R3 ;R3进栈

2432:MVRD R3,32 ;将字符‘2’的ASCII码送寄存器R3

??PAGE ??47??

2434:JR 2450

2440:PUSH R0 ;R0进栈 2441:PUSH R3 ;R3进栈

2442:MVRD R3,33 ;将字符‘3’的ASCII码送寄存器R3 2444:JR 2450

*2450:EI

;开中断(指令编码:6E00)

;将字符“B”赋值给R0,B即Begin的缩写。 ;将字符“I”赋值给R0,I即Interrupt 的缩写。 ;调用子程序,完成显示

2451:MVRD R0,0042 2453:CALA 2200 2455:MVRD R0,0049 2459:MVRR R0,R3 245A:CALA 2200

245C:IN 81 245D:SHR R0 245E:SHR R0 245F:JRNC 245C 2460:IN 80

2461:MVRD R0,0045 2465:MVRD R0,0049

;将字符“E”赋值给R0,E即End 的缩写。 ;将字符“I”赋值给R0,I即Interrupt 的缩 写

2463:CALA 2200 ;调用子程序,完成显示 2467:CALA 2200 ;调用子程序,完成显示 2469:MVRR R0,R3 ;将R3的内容送R1 246A:CALA 2200 ;调用子程序,完成显示 246C:POP R3 ;R3出栈 246D:POP R0 *246E:IRET

7.用A命令从2200H单元开始输入下面的子程序 2200:PUSH R0 2201:IN 81 2202:SHR R0 2203:JRNC 2201

;未完,循环等待

;R0进栈

;查询接口状态,判字符输出完成否

;R0出栈 ;中断返回

;若没有,等待 ;输入字符到R0

;判键盘上是否按了一个键 ;即串口是否有了输入字符

2457:CALA 2200 ;调用子程序,完成显示

;将R3的内容送R1 ;调用子程序,完成显示

??PAGE ??48??

2204:POP R0 2205:OUT 80 2206:RET

8. 编写主程序。

;R0出栈

;输出R0的值

从地址2000H开始输入下列程序: *2000:EI

2001:MVRD R0,0036 ;将字符‘6’的ASCII码送寄存器R0 2003:CALA 2200 ;输出该字符 2005:MVRD R0,4000 ;延时子程序 2007:DEC R0 2008:JRNZ 2007

2009:JR 2001 ;跳到2001循环执行该程序 200A:RET

9、运行主程序,等待、响应中断。 在命令行提示符状态下输入: G 2000↙

屏幕将连续显示“6”。在程序执行过程中按下教学机右下方任意一个无锁按键。此时,教学机转向执行本级中断服务程序,在屏幕上显示BI以及按下的键对应的中断优先级。在接收键盘一个字符后,显示该字符并退出当前级的中断服务程序,恢复中断现场,接着执行断点处的程序。若在接收字符之前,又有更高一级的中断请求,则教学机转向执行高一级的中断服务程序,执行完后接着执行低级中断,然后退出执行主程序。需要注意的是若当前中断为高级的中断,则不会响应低级中断。

??PAGE ??49??

附录一:教学机系统结构图 ??

??PAGE ??50??

计算机组成与结构

(面向信息科学与工程学院各本科专业)

主编: 郝尚富

实 验 讲 义

河北北方学院信息科学与工程学院

2010.11

目 录

??PAGE ??1??

实验一 基础汇编语言程序设计...................................................................... 实验二 脱机运算器实验.................................................................................. 实验三 存储器部件教学实验.......................................................................... 实验四 微程序控制器实验.............................................................................. 实验五 I/O口扩展实验................................................................................... 实验六 中断实验.............................................................................................. 附录一:教学机系统结构图.............................................................................. 附录二 TEC-XP 16 系统各功能部件之间的连接关系和信息传送路径........ 附录三 TEC-XP 16 系统教学实验简明操作卡 附录四 指令汇总表

附录五 基本指令执行流程框图

附录六 扩展指令执行流程框图........................................................................ 附录七 微程序表

实验一 基础汇编语言程序设计

1.1 实验目的:

??PAGE ??2??

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机的串口),按回车后出现如图界面:

??PAGE ??3??

4. 图中是系统设定的一些传输参数,建议用户不要改动,直接回车。按一下教学计算机上的“RESET”按钮放开后再按一下“START”按钮,出现界面如图所示:

5. 此时表明TEC-XP机器联机通讯正常。

1.3.3实

验注意事项:

1. 连接电源线和通讯线前TEC-XP实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP实验系统上的芯片和PC机的串口造成损害;

2. 五个黑色控制开关的功能示意图如下:

单步 手动置指令 组合逻辑 联机 8位

上面 下面

连续 从内存读指令 微程序 脱机 16位

3.几种常用的工作方式(开关拨到上方表示为1,拨到下方为0;) 工作方式5个拨动开关机11110验1XX00

连续运行程序、组合逻辑控制器、联机、16位机00110

连续运行程

序、微程序控制器、联机、16位机00010

连续运行程序、微程

单步、手动置指令、组合逻辑控制器、联机、16位

16位机、脱机运算器实

单步、手动置指令、微程序控制器、联机、16位机11010

5个拨动开关连续运行程序、组合逻辑控制器、联机、16位机00110

序控制器、联机、16位机00010单步、手动置指令、组合逻辑控制器、联机、16位机11110连续运行程序、组合逻辑控制器、联机、16位机00110连续运行程序、微程序控制器、联机、16位机00010

单步、手动置指令、组合逻辑控制器、联机、16位机11110

单步、手动

置指令、微程序控制器、联机、16位机11010联机、16位机00010

00110

16位机、脱机运算器实验1XX00

连续运行程序、微程序控制器、

单步、手

连续运行程序、组合逻辑控制器、联机、16位机00110动置指令、微程序控制器、联机、16位机11010逻辑控制器、联机、16位机11110位机、脱机运算器实验1XX00

单步、手动置指令、组合逻辑控制器、联机、16位机11110

16位机、脱机运算器实验1XX00

单步、手动置指令、组合

16

连续运行程序、微程序控制器、联机、16位机00010

单步、手动置指令、微程序控制器、联机、16位机11010

??PAGE ??4??

连续运行程序、微程序控制器、联机、16位机00010联机、16位机11110脱机运算器实验1XX00

单步、手动置指令、组合逻辑控制器、

16位机、

单步、手动置指令、微程序控制器、联机、16位机11010

连续运行程序、微程序控制器、联机、16位机00010器、联机、16位机11110机、脱机运算器实验1XX00

00010

单步、手动置指令、组合逻辑控制

16位

单步、手动置指令、微程序控制器、联机、16位机11010

单步、手动置指令、组合逻辑控制器、联机、16位机11110单步、手动置指令、

微程序控制器、联机、16位机1101016位机、脱机运算器实验1XX00

单步、手动置指令、组合逻辑控制器、联机、16位机11110单步、手动置指令、微程序控制器、联机、16位机11010

16位机、脱机运算器实验1XX00

单步、手动置指令、微程序

16位机、脱机运算器

16位机、脱机运算器实验1XX00

单步、手动置指令、组合逻辑控制器、联机、16位机11110控制器、联机、16位机11010

11110

单步、手动置指令、微程序控制器、联机、16位机11010

实验1XX00

单步、手动置指令、微程序控制器、联机、16位机11010

单步、手动置指令、微程序控制器、联机、16位机110101101016位机、脱机运算器实验1XX0016位机、脱机运算器实验1XX00 16位机、脱机运算器实验1XX001XX00

1.3.4 监控命令的使用:

1. 用R命令查看寄存器内容或修改寄存器的内容 1) 在命令行提示符状态下输入:

R↙

;显示寄存器的内容

16位机、脱机运算器实验1XX00 16位机、脱机运算器实验1XX00

注:寄存器的内容在运行程序或执行命令后会发生变化。 2) 在命令行提示符状态下输入:

R R0↙ ;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格,也

可有一个或数个空格

主机显示: 寄存器原值:_

在该提示符下输入新的值0036

再用R命令显示寄存器内容,则R0的内容变为0036。 2. 用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙

??PAGE ??5??

〈6〉 以上三步为公共操作,其它指令同。

〈7〉 按START按键; 指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0101 0000;

〈8〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0101 0000,下址的指示灯显示0011 0000;(本拍完成DR+SR+CF→DR操作)

〈9〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0010,微址指示灯显示0011 0000,下址的指示灯显示0011 1010;(本拍完成STR→Q、CC#=INT#操作)

〈10〉按START键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0011 0001,下址的指示灯显示0000 0010;(本拍完成PC→AR、PC+1→PC操作)

2〉 选择扩展指令的C 组指令中的LDRA指令,观察其节拍流程 〈1〉 置拨动开关SW=11100100 00000000;(表示指令LDRA )

〈2〉 按RESET按键;指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;

〈3〉 按START按键;指示灯CI3~0、SCC3~0显示 1110 0000,微址和下址的指示灯全灭; 〈4〉 按START按键;指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;

〈5〉 按START按键;指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;

〈6〉 以上三步为公共操作,其它指令同。

〈7〉 按START按键; 指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0101 1011;

〈8〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0101 1011,下址的指示灯显示0000 0000;(本拍完成PC→AR、PC+1→PC操作)

〈9〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0101 1100,下址的指示灯显示0001 1100;(本拍完成MEM→AR操作)

〈10〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0001 1100,下址的指示灯显示0011 0000;(本拍完成MEM→DR操作)

〈11〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0010,微址指示灯显示0011 0000,下址的指示灯显示0011 1010;(本拍完成STR→Q操作)

〈12〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0011 0001,下址的指示灯显示0000 0010;(本拍完成PC→AR、PC+1→PC操作)

3〉 选择扩展指令的C 组指令中的CALR指令,观察其节拍流程 〈1〉 置拨动开关SW=11100000 00000000;(表示指令CALR )

??PAGE ??41??

〈2〉 按RESET按键; 指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直 亮),其它灯全灭;

〈3〉 按START按键; 指示灯CI3~0、 SCC3~0显示 1110 0000,微址和下址的指示灯全灭;

〈4〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;

〈5〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;

〈6〉 以上三步为公共操作,其它指令同。

〈7〉 按START按键; 指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0110 0100;

〈8〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0110 0100,下址的指示灯显示0000 0000;(本拍完成SP-1→SP、AR操作)

〈9〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0110 0101,下址的指示灯显示0000 0000;(本拍完成PC→MEM操作)

〈10〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0110 0110,下址的指示灯显示0011 0000;(本拍完成SR→PC操作)

〈11〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0010,微址指示灯显示0011 0000,下址的指示灯显示0011 1010;(本拍完成STR→Q操作)

〈12〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0011 0001,下址的指示灯显示0000 0010;(本拍完成PC→AR、PC+1→PC操作)

7.用A、E键入程序连续运行(扩展指令用E命令键入)。 1> 测试ADC指令。

<1>在命令行提示符状态下输入: A 2000↙ 屏幕将显示: 2000:

从地址2000H开始输入下列程序:

2000: MVRD R0,0101 ;给R0赋值 0101 2002: MVRD R1,1010 ;给R1赋值 1010 2004: ↙

在命令行提示符状态下输入: A 2006↙ 2006: RET 2007: ↙

??PAGE ??42??

扩展指令STC、ADC不能用A命令键入,必须用E命令在相应的内存地址键入操作码所有扩展指令都必须用E命令键入。

用E命令输入STC、ADC R0,R1的代码,在命令行提示符状态下输入: E 2004↙

2004: 6D00 (STC, C=1; 01101101 00000000) 2005:2001 (ADC R0,R1; 00100000 DRSR) 2006: ↙

<2>用G命令运行前面刚键入源程序,在命令行提示符状态下输入: G 2000↙

<3>用R命令察看寄存器的内容,在命令行提示符状态下输入 R↙

运行结果应为R0=1112 R1=1010。

2>测试指令LDRA. 编写一程序,将存放在地址单元2100~2101的内容通过LDRA指令转到寄存器R0输出。(LDRA DR,[ADR], DR←[ADR]; 11100100 DR0000)

<1> 将要输出的字符存放在地址单元2100。 在命令行提示符状态下输入: E 2100↙ 屏幕将显示:

2100 内存单元原值: 按下列格式输入:

2100 内存原值: 0036 内存原值:0038↙ 〈2〉用A、E命令键入程序。 在命令行提示符状态下输入: A 2000↙

从地址2000H开始输入下列程序:

2000:*LDRA R0,[2100] ;将内存单元2100的内容赋给寄存器R0 2002:OUT 80 ;输出R0的内容 2003:IN 81 ;判是否输出完 2004:SHR R0

2005:JRNC 2003 ;未完,则循环测试

2006:*LDRA R0,[2101] ;将内存单元2101的内容赋给寄存器R0 2008:OUT 80 ;输出R0的内容 2009:RET

带*的两条指令为扩展指令,必须用E命令键入,形式如下: E 2000↙

2000 内存单元原值:E400 内存单元原值:2100↙

??PAGE ??43??

E 2006↙

2006 内存单元原值:E400 内存单元原值:2101↙ 〈3〉在命令行提示符状态下输入: G 2000↙

屏幕将回显字符‘6’‘8’

实验五 I/O口扩展实验

4.1实验目的

学习串行口的正确设置与使用; 4.2实验说明

??PAGE ??44??

1.TEC-XP配置了两个串行接口COM1和COM2,其中COM1口是系统默认的串行口,加电复位后,监控程序对其进行初始化,并通过该口与PC机或终端相连;而COM2口,留给用户扩展用。

2.查阅有关书籍,了解串行通信接口芯片8251的工作原理;了解8251复位、初始化、数据传输的过程。提醒注意的是,每次对8251复位后(即按1次“RESET”按键),都需要对其进行初始化,然后再进行正常的数据传输;复位后,只能对其进行1次初始化,多次初始化将导致串口工作不正常。

3.在使用COM2口时,需要将两片8251芯片之间的插针用短路子短接(出厂时已短接),这样才能为COM2正常工作提供所需的控制信号和数据;另外,还需要为其分配数据口地址和控制口地址。本教学机,已将COM2口的C/ EMBED Equation.3 中的1个相连。 4.3实验内容

1. 为扩展I/O口选择一个地址,即将与COM2口相连的8251的/CS与标有I/O /CS的一排插孔中的一个相连;

2. 用一根串口线将第一台的教学机的COM2口和另一台教学机的COM2口相连; 3.

用监控程序的A命令,编写一段小程序,先初始化COM2口,在向COM2口发送一些字

Pc机1 键盘1 键盘2 Pc机2 4.4实验步骤

COM1口U COM2口U COM2口U COM1口U 1、 为扩展I/O口选择一

8251 8251 8251 8251 个地址:将

符,也可从COM2口接收一些字符,或实现两个串口的通信;

与地址总线的最低位AB0相

连,而其片选信号未连,只引出1个插孔,实验时,应将该插孔与标有“I/O /CS”的7个插孔

与COM2口相连的8251的/CS与标有I/O /CS的插孔中地址为A0~AF的一个相连;注意,将两片8251芯片之间的插针短接(出厂时以按默认方式短接);

2、 将一台教学机COM1口与一台PC机相连,在PC机上启动PCEC16.EXE; 3、 将另一台教学机COM1口与另一台PC机相连,同样启动PCEC16.EXE; 4、 用一根串口线将第一台的教学机的COM2口和另一台教学机的COM2口相连; 5、 在两台PC机对应的PCEC上分别输入一下程序: 从2000H单元开始输入下面的程序

2000:MVRD R0,004E ;给R0赋值004E。A0,A1是COM2的数据口和控制口

??PAGE ??45??

0001FEFE10000E0E1001FEFE1001FDFC0001FEFE1001FDFC000110000E0E1001FEFE1001FDFC0001FEFE1001FDFC00011001

2*R0->R011100001100100000000不用

2*R0->R011100001100100000000不用

R0/2->R010100001100100000000不用FDFC00017EFE0001R0/2->R010100001100100000000不用FDFC00017EFE0001R0/2->R010100001100100000000不用FDFC00017EFE0001

2*R0->R011100001100100000000不用

R0/2->R010100001100100000000不用FDFC00017EFE0001

FEFE10000E0E1001

2*R0->R011100001100100000000不用0E0E1001

2*R0->R011100001100100000000不用

FEFE1001FDFC0001R0/2->R010100001100100000000不用FDFC00017EFE00012*R0->R011100001100100000000不用FEFE1001FDFC0001FEFE1001FDFC0001FEFE1001FDFC0001FDFC00017EFE0001FDFC00017EFE0001FDFC00017EFE0001FDFC00017EFE0001FDFC00017EFE0001FEFE1001FDFC00011001FDFC0001

FDFC0001

R0/2->R010100001100100000000不用FDFC00017EFE0001R0/2->R010100001100100000000不用FDFC00017EFE0001R0/2->R010100001100100000000不用FDFC00017EFE0001

R0/2->R010100001100100000000不用

2*R0->R011100001100100000000不用11100001100100000000不用

00100000000不用FEFE1001FDFC0001

00000000不用FEFE1001FDFC0001

R0/2->R010100001100100000000不用

000000不用FEFE1001FDFC0001

R0/2->R010100001100100000000不用

0000不用FEFE1001FDFC0001

R0/2->R010100001100100000000不用

不用FEFE1001FDFC0001

R0/2->R010100001100100000000不用

R0/2->R010100001100100000000不用FDFC00017EFE0001

R0/2->R010100001100100000000不用FDFC00017EFE0001 R0/2->R010100001100100000000不用FDFC00017EFE0001

0001R0/2->R010100001100100000000不用FDFC00017EFE0001 R0/2->R010100001100100000000不用FDFC00017EFE0001 R0/2->R010100001100100000000不用FDFC00017EFE0001 10100001100100000000不用FDFC00017EFE0001 00100000000不用FDFC00017EFE000100000000不用FDFC00017EFE0001000000不用FDFC00017EFE0001

??PAGE ??31??

0000不用FDFC00017EFE0001不用FDFC00017EFE000100017EFE00010001

FDFC00017EFE0001

7EFE0001

注:用*标记的运算,表示D1、D2的数据是由拨动开关SW给出的,开关给的是二进制的信号,注意二进制和十六进制间的转换。

按“START”按键之前,ALU输出的是计算结果,参照ALU的操作周期的时序可知A、B口数据锁存是在时钟的下降沿,通用寄存器的接收是在低电平,所以要想寄存器接收ALU的计算结果必须按一次“START”按键。

3.1 实验目的

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

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

教学计算机存储器系统由ROM和RAM两个存储区组成,分别由EPROM芯片(或EEPROM芯片)和RAM芯片构成。TEC-XP教学计算机中还安排了另外几个存储器器件插座,可以插上相应存储器芯片以完成存储器容量扩展的教学实验,为此必须比较清楚地了解:

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

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

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

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

实验三 存储器部件教学实验

??PAGE ??32??

3.3 实验内容

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

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

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

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

内存储器和串行接口电路图:

??

??PAGE ??33??

3.4 实验步骤

1. 检查FPGA下方的插针要按下列要求短接:标有“/MWR”“RD”的插针左边两个短接,标有“/MRD”“GND”的插针右边两个短接,标有ROMLCS和RAMLCS的插针短接。

2. RAM(6116)支持即时读写,可直接用A、E命令向扩展的存储器输入程序或改变内存单元的值。RAM中的内容在断电后会消失,重新启动实验机后会发现内存单元的值发生了改变。

1〉用E命令改变内存单元的值并用D命令观察结果。 <1> 在命令行提示符状态下输入: E 2020↙

屏幕将显示: 2020 内存单元原值: 按如下形式键入:

2020 原值:2222 (空格)原值:3333(空格)原值:4444(空格)原值:5555↙ <2> 在命令行提示符状态下输入: D 2020↙

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

<3> 断电后重新启动教学实验机,用D命令观察内存单元2020~2023的值。会发现原来置入到这几个内存单元的值已经改变,用户在使用RAM时,必须每次断电重启后都要重新输入程序或修改内存单元的值。

2〉 用A命令输入一段程序,执行并观察结果。 <1> 在命令行提示符状态下输入: A 2000↙ 屏幕将显示: 2000: 按如下形式键入: 2000: MVRD R0,AAAA 2002: MVRD R1,5555 2004: AND R0,R1 2005: RET 2006: ↙

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

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

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

??PAGE ??34??

R0的值变为0000H,其余寄存器的值不变。 <3> 在命令行提示符状态下输入: G 2000

运行输入的程序

<4> 在命令行提示符状态下输入: R ↙ 屏幕显示:

R0=0000 R1=5555 R2=…

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

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

4. 将扩展芯片右边的插针按下列方式短接:将EXTROML芯片右上方的标有“WE”和“A11”的插针下面两个短接,将它右边标有“TEC”“/CS”“FPGA”的三个插针左边两个短接,标有XTROMLCS的插针短接,标有“TEC”“OE”“GND”“ FPGA”的四个插针上边一排左边的两个短接;

5. 在第四步中用户可以将右侧标有“TEC”“/CS”“FPGA”的三个插针左边两个短接这表示扩展的ROM的内存地址是从4000H开始,可用空间是4000H~5FFFH,用户可在这个范围内输入程序或改变内存单元的值。也可以将这个插针断开,将标有/CS的圆孔针与标有MEM /CS的一排圆孔针中的任意一个用导线相连;注意连接的地址范围是多少,用户可用的地址空间就是多少。

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

6. AT28C64B的读操作和一般的RAM一样,而其写操作,需要一定的时间,大约为1毫秒。因此,需要编写一延迟子程序,在对EEPROM进行写操作时,调用该子程序,以完成正确的读写。

1) 用E命令改变内存单元的值并用D命令观察结果。 <1> 在命令行提示符状态下输入: E 5000↙

屏幕将显示: 5000 内存单元原值: 按如下形式键入:

5000 原值:2424(空格)原值:3636(空格)原值:4848(空格)原值:5050↙ <2> 在命令行提示符状态下输入: D 5000↙

??PAGE ??35??

屏幕将显示5000H~507FH内存单元的值,从5000开始的连续四个内存单元的值依次为2424 3636 4848 5050。

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

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

下面给出的程序,在5000H~500FH单元中依次写入数据0000H、0001H、...000FH。 从2000H单元开始输入主程序: (2000)MVRD R0,0000

MVRD R2,0010

(2006)STRR [R3],R0

CALA 2200 INC R0 INC R3 DEC R2 JRNZ 2006 RET

从2200H单元开始输入延时子程序: (2200)PUSH R3

MVRD R3,FFFF

(2203)DEC R3

JRNZ 2203 POP R3 RET

运行主程序,在命令提示符下输入:G 2000↙。 程序执行结束后,在命令提示符下输入:D 5000↙; 可看到从5000H开始的内存单元的值变为

5000:0000 0001 0002 0003 0004 0005 0006 0007 5008:0008 0009 000A 000B 000C 000D 000E 000F。 思考:

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

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

;R2记录循环次数

;将R0寄存器的内容放到R3给出的内存单元中 ;调用程序地址为2200的延时子程序

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

;R0加1 ;R3加1 ;R2减1

;R2不为0跳转到2006H

??PAGE ??36??

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

实验四 微程序控制器实验

4.1 实验目的

1.深入理解计算机微程序控制器的功能、组成知识; 2.深入地学习计算机各类典型指令的执行流程;

3.对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念; 4.学习微程序控制器的设计过程和相关技术。 4.2 实验说明

控制器设计是学习计算机总体组成和设计的最重要的部分。要在TEC-XP教学计算机完成这项实验,必须比较清楚地懂得:

1.TEC-XP教学机的微程序控制器主要由微程序定序器AM2910、产生当前微地址和下地址的微控存和MACH器件组成;

2.TEC-XP教学机上已实现的全部基本指令和留给用户实现的19条扩展指令的控制信号都是由微控存和MACH给出的。

3.应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。

4.要明白TEC-XP教学机支持的指令格式及指令执行流程分组情况;理解TEC-XP教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程,也包括控制器设计与实现中的具体线路和控制信号的组成。 4.3实验内容

1.完成控制器部件的教学实验,主要内容是由学生自己设计几条指令的的功能、格式和执行流程,并在教学计算机上实现、调试正确。

2.首先是看懂TEC-XP教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机中已经设计好并正常运行的几条典型指令(例如,ADD、MVRR、OUT、MVRD、JRC、CALA、RET等指令)的功能、格式和执行流程,注意各操作功能所对应的控制信号的作用。

3.设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。例如ADC、JRS、JRNS、LDRA、STAR、CALR等指令,可以从给出的19条扩展指令中任意选择,当然也可以设计与实现其它的指令,包括原来已经实现的基本指令(要变换为另外一个指令操作码)或自己确定的指令。

4.单条运行指令,查看指令的功能、格式和执行流程。

5.用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。

??PAGE ??37??

??教学机计算机控制器的总体组成电路图:

4.4实验步骤

1.接通教学机电源;

2.将教学机左下方的5个拨动开关置为11010(单步、手动置指令、微程序、联机、16位);

3.按一下“RESET”

按键;

4.通过16位的数据开关SWH、SWL置入指令操作码; 5.在单步方式下,通过指示灯观察各类基本指令的微码。

1〉 选择基本指令的A 组指令中的ADD指令,观察其节拍流程 〈1〉 置拨动开关SW=00000000 00000001;(表示指令ADD R0,R1 )

〈2〉 按RESET按键; 指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;

??PAGE ??38??

〈3〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址和下址的指示灯全灭;(本拍完成公共操作0→PC、DI#=0)

〈4〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;(本拍完成公共操作PC→AR、PC+1→PC)

〈5〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;(本拍完成公共操作MEM→IR)

〈6〉 以上三步为公共操作,其它指令同;

〈7〉 按START按键; 指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0000 0100;(本拍完成/MAP操作功能)

〈8〉 按START键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0000 0100,下址的指示灯显示0011 0000 (本拍执行ADD指令,DR←DR+SR操作)。

〈9〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0010,微址指示灯显示0011 0000,下址的指示灯显示0011 1010;(本拍完成STR→Q、CC#=INT#公共操作功能)

〈10〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0011 0001,下址的指示灯显示0000 0010;(本拍完成PC→AR、PC+1→PC、CC#=0的公共操作功能)

2〉 选择基本指令的B 组指令中的MVRD指令,观察其节拍流程 〈1〉 置拨动开关SW=10001000 00000000;(表示指令MVRD )

〈2〉 按RESET按键; 指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;

〈3〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址和下址的指示灯全灭; 〈4〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;

〈5〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;

〈6〉 以上三步为公共操作,其它指令同。

〈7〉 按START按键; 指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0001 1101;

〈8〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0001 1101,下址的指示灯显示0001 1100;(本拍完成PC→AR、PC+1→PC、CC#=0操作)

〈9〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0001 1100,下址的指示灯显示0011 0000;(本拍完成MEM→DR、CC#=0操作)

〈10〉 按START键; 指示灯CI3~0、SCC3~0显示 0011 0010,微址指示灯显示0011 0000,下址的指示灯显示0011 1010;(本拍完成STR→Q、CC#=INT#操作)

〈11〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0011 0001,下址的指示灯显示0000 0010;(本拍完成PC→AR、PC+1→PC、CC#=0的公共操作功能)

??PAGE ??39??

3〉 选择基本指令的D 组指令中的CALA指令,观察其节拍流程 〈1〉 置拨动开关SW=11001110 00000000;(表示指令CALA )

〈2〉 按RESET按键; 指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;

〈3〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址和下址的指示灯全灭; 〈4〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;

〈5〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;

〈6〉 以上三步为公共操作,其它指令同。

〈7〉 按START按键; 指示灯CI3~0、SCC3~0显示 0010 0000,微址指示灯显示0000 0011,下址的指示灯显示0001 1111;

〈8〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0001 1111,下址的指示灯显示0000 0000;(本拍完成PC→AR、PC+1→PC操作)

〈9〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0010 0000,下址的指示灯显示0000 0000;(本拍完成MEM→Q操作)

〈10〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0010 0001,下址的指示灯显示0000 0000;(本拍 完成SP-1→SP、→AR操作)

〈11〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000, 微址指示灯显示0010 0010,下址的指示灯显示0011 0000;(本拍完成PC→MEM、Q→PC、CC#=0操作)

〈12〉 按START键; 指示灯CI3~0、SCC3~0显示 0011 0010,微址指示灯显示0011 0000,下址的指示灯显示0011 1010;(本拍完成STR→Q、CC#=INT#操作)

〈13〉 按START按键; 指示灯CI3~0、SCC3~0显示 0011 0000,微址指示灯显示0011 0001,下址的指示灯显示0000 0010;(本拍完成PC→AR、PC+1→PC、CC#=0操作)

6. 在单步方式下,通过指示灯观察各类扩展指令的微码。 1〉 选择扩展指令的A 组指令中的ADC指令,观察其节拍流程 〈1〉 置拨动开关SW=00100000 00000000;(表示指令ADC )

〈2〉 按RESET按键; 指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;

〈3〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址和下址的指示灯全灭; 〈4〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0001,下址的指示灯全灭;

〈5〉 按START按键; 指示灯CI3~0、SCC3~0显示 1110 0000,微址指示灯显示0000 0010,下址的指示灯全灭;

??PAGE ??40??


计算机组成与结构 TEC+XP+学生实验讲义 (郝尚富).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:红对勾生物必修一第1章单元评估

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: