图4-7 微指令表
注:该表中的微指令为56位的,只需要将每条微指令的MRW、I2~0、I8~6、I5~3、SST、SSH、DC2、DC1这8个字段的首位0除去即为48位的微指令。
实验五 TEC-XP汇编程序设计
实验目的
1、 熟悉和理解查询方式的数据传送过程;
2、 学习TEC-XP教学实验系统汇编程序设计方法。
实验内容
1、 编写指定功能的汇编语言程序,并调试通过。
实验要求
使用教学机前,熟悉查询方式的数据传送原理和TEC-XP教学机的指令系统。
实验学时
2学时
实验原理
本次实验是将PC的键盘和显示器作为TEC-XP教学机的外设,采用程序查询方式进行数据的输入输出操作。
TEC-XP教学机串口的状态寄存器
TEC-XP教学机是通过串口(可编程串行接口8251A)与PC连接的,在联机操作中,PC机对教学机的访问是通过对其数据端口和控制状态端口来完成的。TEC-XP教学机的COM1口(左侧)的数据端口地址为80H,控制与状态口地址为81H;COM2(右侧)的数据端口地址为82H,控制与状态口地址为83H。
TEC-XP教学机的状态字格式如下所示。 ?? D7 ?? ?? D2 ——就绪;0——未就绪)。
RXRDY D1 TXRDY D0 其中,TxRDY为发送就绪位(1——就绪;0——未就绪),RxRDY为接收就绪位(1
注意:当教学机与PC要传送数据时,必须先查询相应的收发状态位。
程序查询方式的数据传送
程序查询方式的数据传送的基本过程是:CPU传送数据之前先检查外设的状态,若没有准备好,则继续查询等待,直至外设就绪即进行数据传送。
在TEC-XP教学机上,所要查询的是与PC连接的TEC-XP的串口状态字。由于本实验室中的TEC-XP教学机所用的都是串口1,则其状态端口地址均为81。 (1)TEC-XP教学机接收输入数据时
当TEC-XP教学机需要从键盘上接收输入数据时,需要检测所读状态字的次低位RXRDY状态。由于读入数据的前提是键盘按键被按下,所以执行IN 80指令(从串口1的数据端口中读取数据)时,必须确认输入数据已到达接口中。因此,IN 80指令总是需要查询等待至RXRDY状态位就绪才可执行。 (2)TEC-XP教学机输出显示数据时
当TEC-XP教学机需要向显示器上输出显示数据时,需要检测所读状态字的最低位TXRDY状态。若单个数据输出时,可直接使用OUT 80指令,从串口1的数据端口中输出数据,因此,可不必进行状态检测。但若要连续输出多个数据时,为保证每一个数据输出的都能被显示器接收到,则必须要查询等待TXRDY状态位就绪才可执行OUT 80指令,以免后一个数据将前一个还没来得及输出的数据覆盖,而导致数据丢失。
实验步骤
1、完成TEC-XP教学机与PC机的联机操作
汇编实验中的程序执行控制由组合逻辑控制器实现,因此,功能开关状态设定为00110。
2、输入给定的汇编程序,连续执行,并观察结果
以下程序段完成功能为:采用程序查询方式,从PC机的键盘接收一个字符至TEC-XP教学机,并将接收到的字符输出显示至PC机的屏幕上。
2000: IN 81 ;从串行接口的状态端口读入状态字,保存于R0的低8位 2001: SHR R0
2002: SHR R0 ;将状态字的次低位RXRDY移出至标志位C上
2003: JRNC 2000 ;若接收未就绪,即C=0,则跳转(查询等待) 2004: IN 80 ;若接收就需,即C=1,则读入输入的字符至R0的低8位 2005: OUT 80 ;将读入字符输出至PC机的屏幕显示 2006: RET ↙ 2007: ↙
在监控状态下输入程序的注意事项:
(1)地址使用用户区地址,采用绝对地址形式。 (2)所有数字默认采用16进制,后面不加H。
(3)程序的最后一个语句为RET,若无该指令,则程序无法结束。
3、试将以上程序段中的OUT 80指令删除,连续执行程序,观察与之前结果的区别。
注意:这里删除OUT 80指令,实际上是在2005单元上写入RET指令,用RET指令取代OUT 80指令。
4、试编写完成以下功能的汇编程序,并在TEC-XP上运行成功。
(1)设计一个小程序,用计数值控制在显示器上输出显示‘0’到‘9’十个数字符。 提示:假设用R2存储字符个数,R0放第一个字符“0”,输出一个字符则R2减1,完成输出后R0加1,以准备下一个字符。
(2)从键盘上连续输入多个‘0’~‘9’之间的数字符,并在屏幕上显示,遇到非数字字符结束输入。
思考:本程序中是否需要判别串行口输出完成否?为什么?
(3)计算1到10的累加和。
(4)设计一个循环程序,将内存2080H起始的10个字符依次显示到屏幕上,并将其转化为小写字母再写回原存储区域。要求:使用子程序完成大小写字母的转换。
实验报告要求
本次实验需完成实验报告一份,本次实验报告内容只写编写汇编程序的第(2)小题。
实验六 中断实验
实验目的
1、加深理解计算机系统中断工作的原理及处理过程。 2、学习和掌握中断产生、中断响应、中断处理等技术。
实验内容
编写主程序和三个中断源的中断服务程序,在主程序执行过程中,按下按键产生中断请求,观察中断服务和中断嵌套的现象。
主程序的功能:在屏幕上循环显示数字字符“6”,并可随时接受中断请求;
中断服务程序的功能:进入中断服务程序显示字符串“BIn”,其中n是与中断源优先级相对应的数字字符“1/2/3”,等待按键,直到有任一按键按下,显示字符串“EIn”后退出中断。
实验要求
1、实验前做好预习,理解TEC-XP教学机的中断实现原理;
2、熟悉TEC-XP教学机的指令系统,能够编写完成中断功能的汇编程序。
实验学时
4学时,其中1~7步2学时,第8步2学时,请在实验前提前预习和准备,以保证实验效果。
实验原理
TEC-XP教学机中提供给用的外部中断源有三个,由教学机面板右下角的三个无锁按键作为其硬件中断源,从右到左依次简称为P1、P2、P3中断源。TEC-XP在响应这三个中断源的中断请求时,采用的是向量地址转移法,即中断源的请求可通过硬件电路产生一个向量地址,在该地址中存放一条转移指令,执行该指令即可转入对应的中断服务程序。
P1、P2、P3的中断向量地址由TEC-XP的内部结构确定,分别为2420H、2430H和2440H,用户中断使用时,应在对应地址中写入转移指令,从而转向用户自定义的中断服务程序。
实验步骤
1、相关扩展指令的微程序验证
本实验中使用到开中断、关中断、中断返回等扩展指令,做具体中断实验之前,先进行