TEC-2说明 - 图文(9)

2019-08-30 16:29

假定程序顺序执行,即(PC)=0804H

微指令 A4H 功能 分析 微指令 A5H 功能 寄存器的值 微指令 19H 功能 寄存器的值 微指令 功能 1AH 分析 微指令 38H 功能 分析 微指令 39H 功能 分析 微指令 IR15~IR10作为地址010000B输入到MAPROM,读出38H,作为下条微指令的地址 00 0E 00 B1 90 00 00 CI3~CI0=14 0→R0;R0作为部分积的高16位,初始值为0;在运算完成后,由3DH微指令将Q送入R1中。 (μPC)= 39H (请学生自己分析) 00 0E 03 80 C1 00 00 CI3~CI0=14 R1→Q,0→C; (μPC)=3AH 将乘数R1送入Q,Q作为乘数寄存器 03 C4 07 C0 B0 02 00 CI3~CI0=4 ① 用4号命令设置AM2910的循环计数初值、堆栈栈顶内容、下条微功能 指令地址 ② R0Q联合右移→R0Q,Q0→C,CC#=0 (μPC)= 3BH 3AH ① 4号命令将本条微指令字段的高12位03 CH(=0000 0011 1100B,去掉最低两位)转换成0FH,存入寄存器/计数器 分析 R/C中,作为循环次数的初值。 ② 将(μPC)= 3BH压入AM2910微堆栈作为循环的首地址③ 将(μPC)= 3BH输出作为下条微指令的地址。 2B 43 C0 80 F0 00 30 CI3~CI0=3 STR→Q,CC#=INT#;保存状态于Q寄存器 (μPC)= A5H DC1选择/FTOIB,Am2901将D输入到Q。 06 43 80 B0 C5 60 02 CI3~CI0=3 PC→AR,PC→IP,CC#=/FS3; FS3=1连续执行,FS3=0单步执行 (μPC)= 19H (AR)=0804H,(IP)= 0804H 00 0E 00 30 B0 54 01 CI3~CI0=14 PC+1→PC,MEM→IR;取指令到IR寄存器 (μPC)= 1AH (PC)=0805H,(IR)=4003H 00 02 00 90 80 00 00 CI3~CI0=2 /MAP 转入相应微程序入口 (μPC)=38H 41

微指令 0F 83 50 90 80 00 00 CI3~CI0=3 一位原码乘法中,需要判断乘数的最低位是0,还是1,决定部分积加功能 3BH 0,还是加被乘数。因为TEC-2中无法判断Q的最低位Q0,故在上条微指令中,将Q右移,Q0送入C中,根据进位标志C的值判断来Q0,以决定微程序执行部分积加0,还是加被乘数的微指令。 分析 微指令 ① C=0,CC#=1,CI3~CI0=3,(μPC)=3CH ② C=1,CC#=0,CI3~CI0=3,(μPC)=3EH 00 08 07 C0 B0 02 00 CI3~CI0=8 ① 部分积加0后与Q联合右移,Q0→C,作为下次加操作的判断条件,功能 Q的最高位中逐渐移入部分积的低位部分。 ② 判断循环次数是否结束。若未结束,执行3BH;结束,执行3DH。 3CH AM2910用8号命令生成下条微指令的地址。若AM2910的寄存器/计数器R/C中为0,表示循环次数已到,下条微指令的地址是3DH分析 (3CH+1),弹出栈顶内容3BH;若AM2910的寄存器/计数器R/C中不为0,表示循环次数未到,下条微指令的地址是栈顶内容3BH,返回循环首地址; 微指令 29 03 01 B0 A0 10 00 CI3~CI0=3 Q→R1,汇编程序通过读R1获得乘积的低16位; 3DH 功能 (μPC)= A4H (思考:没有Q→R1可以吗?) 分析 微指令 (请学生自己分析) 0F 4F 27 C0 90 02 80 CI3~CI0=15 ① 部分积加被乘数后与Q联合右移,Q0→C,作为下次加操作的判断功能 条件,Q的高位中逐渐移入部分积的低位部分。 ② 判断循环次数是否结束。若未结束,执行3BH;结束,执行3DH。 AM2910用15号命令生成下条微指令的地址,且CC#=1。若AM29103EH 的寄存器/计数器R/C中不为0,表示循环次数未到,下条微指令的地址3BH,来自微堆栈栈顶内容,微程序返回循环首地址;若AM2910分析 的寄存器/计数器R/C中为0,表示循环次数已到,下条微指令的地址来自本条微指令下地址字段0F 4H中的高10位,即3DH。 部分积R0与被乘数相加,被乘数寄存器来自指令的IR3~IR0 42

按照以上思路,很容易分析出其它指令的微程序执行过程。上述程序段的微指令执行过程涉及到寄存器传输、运算器外的数据传入寄存器、读内存、算术逻辑运算等基本操作。对于写内存的操作,请同学们分析指令 MOV [DR],SR来理解写操作的过程。

4.自行设计新指令的微程序段

所谓新指令,是指TEC-2机支持的64条基本指令中尚未实现、留给学生实验中自行设计的11条机器指令,即指令汇总表中最后的11条指令。这11条指令的情况是:

?6位操作码已定,为D4、D8、DC、E0、E4、E8、EC、F0、F4、F8和FC,这是按8位长度的16进制方式给出的。其最低两位,可用于选择C、Z、V、S 四个标志位作为判别条件。

?这11条指令的徽程序段的入口地址已定为100H、110H、120H、……、1A0H。这是由MAPROM器件的内容限定的,这些内容已写好在该器件的相应单元中。

?这11条指令没有相应的汇编语句名,执行的功能也未定义。但在使用时,必须使其指令格式与已实现的53条指令的格式类同,如要用C、Z、V、S作为判别条件,只能用指令寄存器的第9、8两位编码加以标明,作为写入用的寄存器编号只能通过IR7~IR4标明等等。使用不当,目前已给出的硬件可能无法直接支持。

设计新指令的微程序段将涉及以下几个问题:

?选定指令格式及功能,包括确定要用的操作码,指令中其它字段的内容分配与使用,本指令要实现的功能。

?按新指令的功能与格式,设计该指令的执行过程,即分成几步完成,每一步要实现的详细操作细节,各步之间的衔接等等。

?将每一步中的操作,用一条微指令实现,即具体设计每条微指令各字段的具体码值,既包括控制码的各字段,也包括下地址字段,形成下地址用到的条件码等等。

?将设计好的微码,装入到控制存储器的相应单元。

?设计一个使用新、旧指令的用户程序,检查程序运行的正确性,以确定新指令是否正确执行,对新指令的执行过程仔细调试,直到得到满意的结果。

这一过程中的装入新指令的微码有两种方法,一是通过水平板上的开关与按键直接拨入,二是在程序中用LDMC指令实现自动装入。这里我们先介绍在程序中自动装入的具体操作步骤。

作为例子,最简单的方法,是抄一条现有指令作为新指令予以实现。例如,操作码选D4,指令格式选为D4 DR,SR,实现DR+SR→DR的功能。它就是ADD DR,SR那条指令,

43

差别仅是操作码由04变为D4。查指令汇总表,D4操作码的微指令的入口地址应为100H,故将控存1CH地址中的微指令(实现ADD DR,SR的操作)中的内容复制到100H单元,就完成了这条新指令的微程序设计的过程。看下面一个程序例子。 >A800

800: MOV R8, 240 MOV R9, 360

MOV Rl, 900 ;微码在内存的首地址 MOV R2, 1 ;徽指令条数

MOV R3, 100 ;徽码在控存中的首地址

LDMC ;用R1,R2,R3作为参数,装入徽码 D489 RET

>E900

900:....0029....0301....B090....0088

该程序的功能是将240和360两个16进制形式的整数分别送入R8和R9。用新指令(机器码为D489,其操作码为D4,DR选R8,SR选R9)完成两个寄存器的内容相加,结果写入R8。

该程序当中的4条指令,实现的是装入新指令的微码。微码在内存的首地址为900,四个宇的内容为0029,0301,B090,0088,可以用监控程序的E命令键入。

该程序可以用监控程序的A命令打入。倒数第2行的D489是新指令的机器码,不能在A命令方式下打入。具体操作过程可以在A命令方式下,先在此处打入任何一条单字指令。例如, MOV R0,R0。整个程序输入后,再将该单元的内容用E命令改为D489。

该程序运行过程中,在为R8、R9赋值后,接着装入新指令的微码,再执行新指令,并返回监控程序以结束该程序的执行过程。

该程序运行结束后,用R命令检查程序的执行结果,R8的值应变为05A0。以上用到的数值均为16进制,在监控命令工作时,均不能跟H或h字符。

从这个例子可以得到以下几个结论: ?新旧指令可以用在同一程序中。

?新指令在每次TEC-2机重新加电后,至少得重新装入一次对应的微码;仅在装入相应微码后,新指令才能执行,即新指令已追加到TEC-2的指令系统中。

?新指令无汇编码(因汇编程序实现在前,新指令实现在后),故在程序中,只能通过机器码使用新指令。

44

?装入新的微指令与使用新指令变得非常容易,同学的精力就可以全部集中到微程序设计中去。但必须想到,新、旧指令的微程序之间存在着如下协调与配合关系:

前边的例子中,只设计了新指令的具体执行功能,执行前的取指过程和执行后的判中断、与下条指令的衔接等均使用了原微程序的有关内容。从同学们学习微程序设计的角度看,取指过程与每条指令完成后的相应处理是公用于所有指令的,而且比较简单,看懂原来的实现方法与细节,以及与每条指令执行过程的衔接方式,也就达到了深入掌握的程度,故一般不必在自己设计的微程序中考虑这一部分内容。若有的学生想在自己的微程序中实现自己的取指等处理过程,必须保证在新旧指令衔接时不出现矛盾。

任何一条新指令的执行步骤,每一步中的微指令字段的编码设计,是学习TEC-2机微程序设计的重点,也是学懂计算机指令执行过程的核心内容。

§1.6 TEC-2机的输入输出及中断

1.TEC-2的输入输出

在TEC-2中,用50芯扁平电缆将信号引出(见附录4 TEC-2机的接插件的引脚信号),其中与输入输出相关的信号有:

AB7~AB0: I/O地址信号 DB7~DB0: I/O数据信号 /IOR: /IOW: /IORQ: /IOS:

I /O读信号 I /O写信号

I/O请求,只有/IORQ为低时才能访问I/O设备

可以作I/O片选信号(见附录14 TEC-2机实验计算机系统逻辑线路图(三)) 主脉冲信号

/CLK3:

/Reset: 复位信号

根据I/O设备的地址要求,对AB7~AB0,/IORQ进行全译码,产生I/O片选信号,也可以直接使用已有的I/O片选信号/IOS。

输入指令:IN PORT;R0←[PORT],从外设读入一字节到R0低8位; 输出指令:OUT PORT;[PORT] ←R0,把R0的低8位数据写到外设。

2.TEC-2的中断

在§1.5节中,流程图1.5.2表示的是在没有中断请求的情况下,微程序的运行过程。当

45


TEC-2说明 - 图文(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:八字实战案例深度剖析

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

马上注册会员

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