包板组成的扩展实验板相连。在实验板上用户可以完成主存扩展、并行接口、实时钟、DMA接口、A/D或D/A转换接口等实验,能驱动打印机、软磁盘驱动器等外设的工作;此时TEC-2机支持7级中断;
(8)TEC-2机主振通常用1.8432MH(串行口所用的晶振频率)的分频脉冲给出,用户也可外接主振信号;
(9)TEC-2机做在垂直插接在一起的约46cm*36cm的双面印刷电路板上,易于观察、测量和进行实验;
(10)TEC-2机上安装有约26个钮子开关、3个按钮微动开关、16个发光二级管等,在不接入计算机终端与PC机的情况下,能在手动方式下完成全部的实验项目。
综上所述,TEC-2机具有如下优点:
?系统的完备性。TEC-2机是一台硬软件相对齐全、配置小巧合理的完整的计算机系统,通过它能体现出重要教学内容,能完成主要教学实验项目。
?较高的实验性能。是指用TEC-2机能较好地完成计算机硬件系统各功能部件的教学实验,包括运算器部件、控制器部件、主存储器部件、总线和几种最常用的外设接口的实验,如中断、外设驱动等方面的实验。因此,在TEC-2机中,自行设计了CPU;编制了支持汇编语言运行的监控程序。
?更广的应用面。是指支持高级与初级两个层次上两种方式的实验,要在基本系统上支持多项扩展选项。高层次的实验方式,是指TEC-2机与计算机终端(或PC/XT微机作为仿真终端)连起来运行;初级方式的实验,是指不接任何计算机外围设备,只用TEC-2机主板上的开关、按键与指示灯等操作,控制TEC-2机的实验运行。
附录中比较详尽地给出了相关的技术资料,供大家在学习TEC-2机原理时查阅。
§1.2 TEC-2机的指令系统与汇编语言程序设计
1.TEC-2机指令系统综述
TEC-2机类PC机基本指令系统,采用6位操作码,故最多支持64条基本指令,其中53条指令已由设计者实现,其相应微程序固化在ROM芯片中,其余11条将留给实验人员自行设计实现。已实现的指令与实验人员实现的指令能方便地用在同一实验程序中,为控制器部件的实验带来很大方便。
TEC-2机的基本指令的格式比较固定。从指令长度区分有单字指令和双字指令,用户也可以实现三字指令;从操作数的个数区分,有无操作数指令、单操作数指令和双操作数指
6
令;从支持的基本寻址方式区分,有寄存器寻址、寄存器间接寻址、立即数寻址、变址寻址、相对寻址、绝对寻址和堆栈寻址等方式;从指令功能上看,常用指令类型和运算还是比较齐全的。其指令的基本格式如下:
15 10
操作码 9 8 条件码 入、出端口地址/相对转移位移量 7
目的寄存器号 4
3
0
源寄存器号 立即数/绝对地址/变址位移量 单字指令仅用一个指令字。
双字指令用两个指令字,第二个指令字的内容可能是立即数、绝对地址或一个变址位移量。
第一个指令字的最高6位是操作码,9、8两位是条件码,这两位的值为00、01、10和11时,分别选择以处理机状态字中的C、Z、V和S的值作判断条件。
最低8位有如下的用法:
(1)分成两个4位的字段,用于给出所用的通用寄存器编号。对双操作数指令,这里可以给出目的与源两个操作数所在的寄存器编号。对单操作数指令,只用源或目的中的一个操作数,此时,可能用到某一个4位字段,另外一个4位字段则不用。
(2)用于给出输入输出指令的端口地址。
(3)用于给出相对寻址的位移量,位移量用8位补码表示,其范围从-128到+127之间,因此相对地址应在当前指令地址向前向后总共256个字的范围之内。
TEC-2机上现有的软件,包括监控程序都是用已实现的53条指令设计完成的,而且在PC机上实现的TEC-2机的交叉汇编程序,能在PC机中直接汇编生成出TEC-2机的指令代码,即TEC-2机上的执行程序。
2.TEC-2机的指令系统分类及功能
2.1 按操作数分类 (1)无操作数
无操作数指令共11条。其格式如下:
15 10 操作码 9 8 7不用 不用 4 3 不用 0 7
各指令的汇编符号及实现的功能描述如下: NOP; 空操作 PSHF; 状态字入栈 POPF; 状态字出栈 EI; 开中断,INTE=1 DI; 关中断,INTE=0 STC; 进位置1 CLC; 进位清0 RET; 子程序返回 IRET; 中断返回 LDMC; 装入微指令代码 HALT; 动态停机指令
察看附录1 各条指令的操作码及微程序入口地址表格可得到各条指令的操作码,进而可将汇编语言指令翻译成机器码。
例如NOP指令的机器码为0000 00×× ×××× ××××B,用16进制表示0000H。 (2)单操作数指令 有两种格式,共12条。 第一种格式如下:
15 10 9 8 操作码 不用 7 不用 4 3 SR 0 各指令的汇编符号及实现的功能描述如下:
MUL SR;无符号乘,R1×SR→R0R1,根据R1的值置状态位
DIV SR;无符号除,R0R1/SR→R0(余数)R1(商),根据R1的值置状态位 汇编语言指令MUL R8的机器码为 0100 00×× ×××× 1000B,即4008H。 第二种格式如下:
15 10 操作码 9
8 7
DR 4 3
不用 0
不用
各指令的汇编符号及实现的功能描述如下: PUSH
DR;压入DR
POP DR;弹出DR
8
INC DR;DR←DR+1 DEC DR;DR← DR-1
NOT DR;DR求反,DR←/DR
SHL DR;DR左移,最低位补0,最高位移入C。 ASR DR;DR算术右移,最高位不变,最低位移入C。 SHR DR;DR逻辑右移,最高位补0,最低位移入C。 RCL DR;DR与C循环左移,C入最低位,最高位移入C。 RCR
DR;DR与C循环右移,C入最高位,最低位移入C。
汇编语言指令INC R10的机器码为 0111 01×× 1010 ××××B,即74A0H。 (3)双操作数指令 两种格式,共17条。 格式一:
15 10 9 8
7
4 3
0
操作码 不用 DR SR 各指令的汇编符号及实现的功能描述如下: ADD DR,SR;DR←DR+SR ADC DR,SR;DR←DR+SR+C SUB DR,SR;DR←DR-SR SBB DR,SR;DR←DR-SR-C CMP DR,SR;DR-SR AND DR,SR;DR←DR and SR OR DR,SR;DR←DR or SR XOR DR,SR;DR←DR xor SR TEST DR,SR;DR&SR MOV DR,SR;DR←SR MOV DR,[SR];DR←[SR] MOV
[DR],SR;[DR]←SR
汇编语言指令ADD R10,R11的机器码为 0000 01×× 1010 1011B,即04ABH。
9
格式二:
15 10 9 8 操作码 不用 7 DR DATA/ADR 4 3 SR 0 各指令的汇编符号及实现的功能描述如下: MOV DR,DATA; DR←DATA MOV DR,[ADR]; DR←[ADR] MOV [ADR],SR; [ADR]←SR
MOV DR,DATA[SR]; DR←[DATA+SR] MOV DATA[SR],DR; [DATA+SR]←DR
汇编语言指令 MOV R8,2000[R10] 的机器码为 0011 10×× 1000 1010B和 0010 0000 0000 0000 B,即388AH、2000H,该指令占2个字。 (4)I/O指令
15 10 9 8 7操作码 不用 PORT 0
各指令的汇编符号及实现的功能描述如下:
IN PORT;R0←[PORT],从外设读入一字节到R0低8位
OUT PORT;[PORT] ←R0,把R0的低8位数据写到外设
汇编语言指令 IN 80 的机器码为 1010 01×× 1000 0000B,即A480H。 (5)转移指令 三种格式,共6条。
判断转移条件CND与指令的10~8位的对应关系如下表1.2.1所示:
表1.2.1
CND IR10~ IR 8 NC 000 NZ 001 NV 010 NS 011 C 100 Z 101 V 110 S 111
第一种格式:
相对转移指令:
JR ADR;无条件相对转移到ADR,ADR为原PC值+位移量
10
15 10 操作码 9 8 7CND 位移量 0