实验四 微程序控制器实验
2011年国考行测-银行公共基础知识
实验四  微程序控制器实验 
实验目的
1、深入理解微程序控制器的功能和组成结构;
2、学习教学计算机各类指令的指令格式、寻址方式及执行流程;
3、学习微程序控制器的设计过程和相关技术。 
实验内容
1、分析基本指令的执行流程,在教学机上验证其对应的微指令;
2、设计几条指令的功能、格式和指令流程,并在教学计算机上进行测试。 
实验要求 
1、实验之前,认真准备,对于该实验的基本原理、微指令格式、以及相关机器指令的
微程序等内容预
先做好分析和设计; 
2、实验过程中,应认真进行实验操作,仔细思考实验有关内容,把难点内容通过
实验
理解清楚,争取最好的实验效果;
3、实验之后,应认真思考,写出实验总结,包括实验中遇到的主要问题和分析、解决
方法。
实验学时 
4学时 
实验原理 
1、TEC-XP教学机的控制器基本原理
TEX-XP教学机中包含组合控制逻辑和微程序控制逻辑两种不同结构的控制器。本实验
中使
用的是微程序控制器,与微程序控制器相关的机器结构如图4-1所示。控制器中使用程
序计数器PC跟
踪机器指令的执行,使用PC中的内容访存获取机器指令,得到的机器指令
送入控制器中的指令寄存器I
R暂存,并由微程序控制器分析执行,执行过程中的所有控制
信号均由微程序控制器中的微命令寄存器μ
IR发出。 
 
图4-1  TEC-XP教学机的基本结构
TEC-XP教学机的微程序控制器详细内部结构如图4-2所示。该控制器中包含指令寄存
器
IR(存放当前执行的指令)、地址映射部件(确定不同指令对应的微程序入口地址)、微
程序定序器A
m2910(根据微指令中的下址字段和判断测试条件,产生下一条微指令的地
址)、条件判定线路(用
于微程序流向控制)、控制存储器CM(包含所有的微指令)、微指
令寄存器μIR(存放当前微指令的
操作控制字段)等部件。 
 
图4-2  微程序控制器内部结构 
微程序控制器的工
作过程是:对于指令寄存器IR中的机器指令,由地址映射部件产生
该指令所对应微程序的入口地址,通
过Am2910送给控制存储器。取出的一条微指令送入微
指令寄存器,其中的微命令字段用于发出控制
信号,控制各部件的执行,下址字段与条件判
定线路的各测试信号一起送给Am2910,由其确定下条
微指令的地址,继续执行。 
2、地址映射部件 
地址映射部件,即微指令地址映射部件,它是
由一片E
2
PROM构成的,一般称为
MAPROM。指令寄存器IR将其中的高8位
指令操作码送给MAPROM,MAPROM根据操
作码与微地址之间的映射关系,给出该指令对应微程
序的入口地址。 
TEC-XP教学机中的指令操作码与微地址之间的映射关系如附录表4-1所示。
3、TEC-XP教学机的微指令格式 
TEC-XP教学机的微指令共48位,由16位的下
址字段和32位的操作控制字段形成,
其格式如图4-3所示。 
 
图4-3
TEC-XP教学机的微指令格式 
(1)下址字段 
a) 8位的微下址 <
br>用于给出下一条将要执行的微指令的地址。微程序顺序执行,即把已增1后的微指
令地址作为下地
址 
b) 4位的测试控制码CI
3
~
0
 
用于决定微程序
中的微指令寻址方式(顺序寻址、跳跃寻址)。本实验中只使用到
0000(初始化,使微下址=0)、
0010(指令功能分支,做MAPROM映射)、0011
(条件转移,由SCC决定是否转移)、1
110(顺序寻址,将当前微地址加1作为微
下址)这四个命令码。 
c)
4位的转移条件编码SCC
3
~
0
 
当CI
3~0
=0011时,由这四位编码决定转移判断测试的条件,若选中条件满足,则
使用微下址寻址下一条微指
令,否则做顺序寻址,同CI
3~0
=1110。 
下址字段的这
3
部分控制信号与形成微地址的关系详如附录表
4-2
所示。
(2)操作控制字段 
a) MIQ、REQ、WE 
这3位控制信号用于对存储器或
IO接口进行读写操作时的控制。具体定义如附录
表4-3所示。 
b)
I8-I6、I5-I3、I2-I0、A口和B口、SST
2-0
:具体定义参考实验二。
c) SSH、SCI1-0:本实验中控制方式如附录表4-3所示。 
d) DC1 用于选择把哪一组数据发送到CPU的内部总线(IB)上。在微指令执行过程中,
若不使用内部总
线,则通常将其设置为000,可认为是无效状态。 
e) DC2
用于控制数据接收及相关的内部功能。 
DC1和DC2的控制方式如附录表4-4所示。
4、控制存储器 
控制存储器字长48位,用来存放TEC-XP教学机的所有微指令。硬件实
现时,是使用
两片EEPROM芯片(58C64)存放16位下地址字段信息,而32位操作控制字段
信息存放
在MACH器件内。 
每次读控制存储器时,从这三个芯片中读出一条微指令。48位
的微指令寄存器也分为
两段,即16位的下地址信息,和32位的微命令信息。
5、A、B、C、D组指令执行流程 
TEC-XP教学计算机中,按照每条指令的功能和实际
的执行步骤,将指令分成了A、B、
C、D共4组,每条指令的所属组详见具体的指令描述。
A组中的指令执行时,一般只是完成通用寄存器间的数据运算或传送,在取指后可一步
完成。 
B组中的指令,一般需要完成一次内存或IO读、写操作,在取指后可两步完成:第一
步把要使
用的地址传送到地址寄存器AR中,第二步执行内存或IO读写操作。 
C组中的指令,在取指后可三步
完成:其中CALR在用两步读写内存后,第三步执行寄
存器间的数据传递;而其它指令在第一步置地址
寄存器ARH、ARL,第二步读内存(即取地
址操作数)、计算内存地址、置地址寄存器ARH、AR
L,第三步读、写内存。
D组中的指令,完成两次读、写内存操作,在取指之后可四步完成。 
TEC-
XP教学机的基本指令、扩展指令执行流程分别由附录中图4-4和4-5给出。 
6、TEC-
XP教学机的数据通路与微命令的关系 
微指令的操作控制字段直接用于控制TEC-XP教学机中的各
个执行部件,顺序控制字段
分别送微程序控制器中的微地址寄存器和转移控制逻辑,用于产生微下址,寻
址微指令。图
4-4中给出了微指令中的各个字段与TEC-
XP教学机数据通路的对应关系,可帮助理解微指
令的应用。 
 
图4-4
TEC-XP教学机的数据通路与微命令 
实验步骤
请根据每个步骤的详细要求,完成本实验内容。 
1、设定工作方式 
接通TEC-X
P教学机的电源,将功能开关拨为11010,即设为单步、手动执行指令,使
用微程序控制器,联机操
作。 
2、验证A组基本指令——加法指令ADD R0,R1的微程序
根据如下所示的ADD指令格式,可得到指令ADD R0 , R1的机器代码为00000000 
00000001,其中高8位为ADD指令的操作码(详见代码表4-1),接下来的两个4位分别对
应R0和R1寄存器。 
 
先按下RESET按键,复位系统,然后通过16位的数据
开关SW拨入指令代码,再按
下RESET按键,此时指示灯Microp亮,其它灯全灭。 
注意:在本实验中,选择的是微程序控制器,
Microp
指示灯会一直点亮。
由附录图4-5所示的基本指令流程可知,加法指令ADD R0 , R1的整个指令周期包含6
p>
个CPU周期,其中前3个CPU周期是取指阶段,所有指令都是一样的,第4个CPU周期
用于指令操作码的地址映射,第5个CPU周期完成加法指令的功能,第6个CPU周期用于
判
断是否需要执行中断周期,从而决定该加法指令执行结束后的流向。该加法指令的微程序
如表4-6所示
。 
在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在
实
验前看懂以下微指令,在实验中验证每条微指令,并记录每条微指令执行时微地址、微
下址指示灯的状态
。 
表4-6  加法指令ADD R0 , R1的微程序 
微地操作功能 
址
00H 
01H 
02H 
03H 
04H 
30H
 
下址 
CI
3~0
 SCC
3
MR
W
~0
 
I
2~0
 I
8~3
 
001
011 
001 
011 010 
000 
000 001
000 
000 001 
000 
001 011 
000
111 000 
000 
  
B口 A口 
SST
SSHSCI 
DCDC
2
 
1
 
111
00
0 
011 00
0 
00
1 
00
0
00
0 
00
0 
 
00
0
00
0 
00
0 
011 
0PC、
00H 1110 0000 100 
DI#=0
PCAR、
00H 1110 0000 100 
PC+1PC
MEMIR 00H 1110 0000 001 
MAP 00H 0010 0000
100 
0101 0101 000 001 
0101 0101 000 001
0000 0000 000 000 
0000 0000 000 000
0000 0001 001 000 
0000 0000 000 000 
R0+R1R30H 0011 0000 100 
0
STR→Q、
3AH 0011 0010 100 
CC#=INT# 
(1)公操作微指令(0PC、DI#=0) 
该微指令在控制存储器中位于第一个单元,即
微地址为00H,是程序运行时的初始操作。
本实验中由于是脱机单步运行状态,因此每条指令执行时都
需要该微指令。 
该操作中的PC清零是通过运算器的PC本身相减得到的,因此这里与运算器相关的控
制信号应选择I
2~0
=001(选择A、B锁存器输入)、I
8~6
=011(FB,结果保存到B口指定寄
存器)、I
5~3
=001(S-R,减
法运算)、B口=0101(指定R5,即PC)、A口=0101(指定R5,
即PC)、SST=0
00(标志位保持不变)、SSH SCI=001(减法运算的最低位进位Cin=1)。
该操作中不需要访存,或访问IO,因此MRW为100(无读写)。DC1无用,选择000。
本条微指令的另一个操作DI#=0,使用DC2=111,选择关中断实现。 
本条微指令执
行完成后应进入指令的取指周期,因此要转向执行PCAR微指令,因
此,CI应选择1110(顺序
寻址),则下条微指令的地址应在本条微指令地址(00H)的基础
上加1,即01H。顺序寻址方式下
,SCC无效,直接写0000。 
(2)送指令地址微指令(PCAR、PC+1PC) 
本条微指令首先要做的是PCAR的操作,这里使用A口地址指定PC,即0101,并
设置I8~6
=010(使A口指定内容输出到内部总线上),DC
2
=011(指定A
R接收内部总线上的
数据)。 
本条微指令中要完成的PC+1PC,仍然通过运算器做加法
,加上Cin来实现,故控制
信号I
2~0
=011(选择0、B数据),B口=01
01(B口指定PC),I
8~6
=010(FB,运算结果送
PC),I
5~3
=000(加法运算),SST=000(标志位保持不变)、SSH
SCI=001(增量运算中使用
最低进位位Cin提供加数)。
该操作中不需要访存,或访问IO,因此MRW为100(无读写)。DC1无用,选择000。 本条微指令将所要访问主存单元的地址送给AR,则接下来应从主存中读出机器指令字,
即本条微指
令之后的微指令一定是MEMIR,因此,CI应选择1110(顺序寻址),则下条
微指令的地址应
在本条微指令地址(01H)的基础上加1,即02H。顺序寻址方式下,SCC
无效,直接写0000
。 
(3)读指令字微指令(MEMIR) 
本条微指令需要做访存读取机器指令,因此运算
器相关的命令可设置无效,即I
2~0
=000,
I
8~6
=001
,I
5~3
=010,A口=0000,B口=0000,SST=000(标志位保持不变)
、SSH SCI=000。 
访存获取的指令字应存放于指令寄存器IR中,因此,MRW=001(
内存读),DC2=001
(IR接收)。DC1无用,选择000。 
本条微指令执行后,控
制器应进行操作码的译码,做微地址映射,因此,CI应选择1110
(顺序寻址),则下条微指令的地
址应在本条微指令地址(02H)的基础上加1,即03H。顺
序寻址方式下,SCC无效,直接写00
00。 
注意:以上
3
条微指令是适用于所有指令的取指操作的。
(4)地址映射微指令(MAP) 
本条微指令主要是由地址映射部件,根据指令操作码给出对
应的指令周期微程序的入口
地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I
2~0
=000,I
8~6
=001,I
5~3
=010,
A口=0000,B口=0000,SST=000(标志位保持不变),SSH
SCI=000,DC1=000,DC2=000。 
微地址的映射用CI的2号命令控制,即CI<
br>3~0
=0010(指令功能分支),SCC
3~0
=0000(必
转
)。下址字段无效,写00H。根据地址映射表4-1可知,ADD指令的微程序入口地址为04H,
故
该微指令执行后,下址指示灯显示为0000 0100。 
(5)加法微指令(R0+R1R0) 
本条微指令主要完成两个通用寄存器的加法运算,由实验二可知,运算器相关的控制信
号为:I
2~0
=001(选择AB口数据),I
8~6
=011(FB),I5~3
=000(加法运算),A口=0001(R1
作为源操作数),B口=0000(
R0作为目的操作数),SST=001(运算影响标志位),SSH
SCI=000
(Cin=0)。
本条微指令无访存控制,因此DC1=000,DC2=000。 
本条微指令执行结束时,A
DD指令功能已完成,即指令的执行周期完成,按照指令周
期的流程,这里需要检查系统是否有中断请求
。因此,本条微指令执行结束即应转向中断判
断微指令,CI
3~0
=0011码(条
件转移),SCC
3~0
=0000(必转),下址字段给出中断判断微指
令的地址,
30H。 
(6)中断判断微指令(STR→Q、CC#=INT#) 
本条微指令用于判断当
前系统是否有中断请求,若有,则转去处理中断(地址为3AH
的微指令),否则顺序执行下一条机器指
令(地址为31H的微指令)。因此,CI
3~0
=0011码(条
件转移),所依据
的条件应为SCC
3~0
=0010(若有中断请求时转移),下址=3AH。 
在进
行中断判断时,需要使用到标志位状态,因此,本条微指令需要做的另一个操作是
DC1=011(将标
志位送到内部总线上),用以判断中断。 
3、验证B组基本指令——传送指令MVRD
R0,D的微程序 
指令MVRD是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操
作
数指令。其指令格式如下所示,则指令MVRD R0 ,
D的机器代码的高16位为10001000 
00000000,其中高8位为MVRD指令的操作码
(详见代码表4-1),接下来的4位对应目的
寄存器R0。本次实验中,只是验证指令的微程序,至于
该指令所传送的数据D可采用存储
单元中的随机值。 
 
先按下RESET按键,复位
系统,然后通过16位的数据开关SW拨入指令代码,再按
下RESET按键,此时指示灯Microp
亮,其它灯全灭。 
由附录图4-5所示的基本指令流程可知,传送指令MVRD R0 , D的指令
周期共包含7
个CPU周期,比A组指令在执行阶段多一个CPU周期,主要用于访存获取操作数。这里
MVRD的源操作数是立即数寻址方式,其值保存于指令的第二个字上,而TEC-XP教学机
是16位机,在取指阶段仅读出该指令的第一个字,所以,在访存取操作数时应使用PC中
的地址寻址存
储单元,执行1DH的微指令。该传送指令的微程序如表4-6所示。 
在完成以上设置后,接下来每次
按下START按键,控制器就会执行一条微指令,请在
实验前看懂以下微指令,在实验中验证每条微指
令。 
表4-6  传送指令MVRD R0 , D的微程序 
微地操作功能 
址
00H 
01H 
02H 
03H 
下址
CI
3~0
 SCC
3
MR
W 
~0
I
2~0
 I
8~3
 
001 011 
001
011 010 
000 
000 001 
000 
000
001 
000 
011 010 
000 
111 011
000 
111 000 
000 
B口 A口 
SST
SSHSCI 
DCDC
2
 
1
 
111
00
0 
011 00
0 
00
1 
00
0
00
0 
00
0 
0PC、
00H 1110 0000
100 
DI#=0 
PCAR、
00H 1110 0000 100
PC+1PC 
MEMIR 00H 1110 0000 001 
MAP
00H 0010 0000 100 
0101 0101 000 001 
0101
0101 000 001 
0000 0000 000 000 
0000 0000
000 000 
0101 0101 000 001 1DH
PCAR、
1CH 0011 0000 100
PC+1PC
、CC#=0 
1CH 
30H
MEM→
30H 0011 0000 001 
DR、CC#=0
STR→Q、
3AH 0011 0010 100 
CC#=INT#
011 00
0 
00
0 
00
0
00
0 
011 
0000 0000 000 000 
0000
0000 000 000 
 
在传送指令MVRD R0 , D执行过程中,前3条取指相
关的微指令和最后1条中断处理
微指令与ADD之前完全相同,这里只对不同的3条微指令进行介绍。
(1)地址映射微指令(MAP) 
本条微指令主要是由地址映射部件,根据指令操作码给出对
应的指令周期微程序的入口
地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I
2~0
=000,I
8~6
=001,I
5~3
=010,
A口=0000,B口=0000,SST=000(标志位保持不变),SSH
SCI=000,DC1=000,DC2=000。 
微地址的映射用CI的2号命令控制,即CI<
br>3~0
=0010(指令功能分支),SCC
3~0
=0000(必
转
)。下址字段无效,写00H。根据地址映射表4-1可知,MVRD指令的微程序入口地址为
1DH,
故该微指令执行后,下址指示灯显示为0001 1101。
(2)取机器指令的第二个字节微指令(PCAR、PC+1PC、CC#=0) 
由于M
VRD指令是双字指令,在取指阶段仅从主存中取得了指令中包含操作码的高字
部分,这里要执行该指令
时,必须获取指令的第二个字数据,即指令中的16位立即数。因
此,在完成地址映射后,应执行该微指
令,再次读取主存。 
本条微指令的执行与取指阶段PCAR、PC+1PC微指令的操作控制部分
完全相同,
但顺序控制部分,根据指令的执行流程可知,下条微指令应将使用主存中读得的立即数给目<
br>的寄存器赋值。因此CI
3~0
=0011(条件转移),SCC
3~0
=0010(必转),所要转向的地址由下
址字段给出,即1CH。
(3)访存赋值微指令(MEM→DR、CC#=0) 
本条微指令是将存储单元中读得的立即
数给目的寄存器赋值。这里使用运算器D+0R
操作实现,其中D为从存储单元中读出的操作数。因此
,MRW=001(内存读),I
2~0
=111(选
择外部数据D和0),I
8~6
=011(FB),I
5~3
=000(加法),A口未用,B口=000
0(指定目的
寄存器R0),SST=000(标志位保持不变),SSH
SCI=000(Cin=0)。
本条微指令中DC1=000(无效),DC2=000(无操作)。 
本条微指令执行结束时
,MVRD指令功能已完成,即指令的执行周期完成,按照指令
周期的流程,这里需要检查系统是否有中
断请求。因此,本条微指令执行结束即应转向中断
判断微指令,CI
3~0
=0011
码(条件转移),SCC
3~0
=0000(必转),下址字段给出中断判断微
指令的
地址,30H。 
4、分析D组基本指令——子程序调用指令CALA ADR的微程序 
指令
CALA是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作
数指令。其指令格式如
下所示,则指令CALA ADR的机器代码的高16位为11001110 
00000000,其中
高8位为CALA指令的操作码(详见代码表4-1),接下来的4位对应目的
寄存器R0。本次实验中
,只是验证指令的微程序,至于该指令所用到的直接地址可采用存
储单元中的随机值。 
 先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按
下RESE
T按键,此时指示灯Microp亮,其它灯全灭。
由附录图4-5所示的基本指令流程可知,子程序调用指令CALA ADR的指令周期共包
含
9个CPU周期,执行阶段比B类指令多用2个CPU周期。CALA指令的微程序如表4-7
所示。在
完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请
在实验前完成对表4
-7中每条微指令的分析,在实验中验证,并分析每条微指令的具体功能。 
表4-7
子程序调用指令CALA ADR的微程序 
微地操作功能 
址 
00H
0PC
下址 
CI
3~0
SCC
3
MR
W 
~0
 
I
2~0
I
8~3
 
001 011 
B口 A口 
SST
SSHSCI 
DCDC
2
 
1
 
111
00
、
00H 1110 0000 100 0101 0101 000 001
DI#=0 
01H 
02H 
03H 
1FH
20H 
21H 
22H 
PCAR、
00H 1110
0000 100 
PC+1PC 
MEMIR 00H 1110 0000 001
MAP 00H 0010 0000 100 
001 
011 010
000 
000 001 
000 
000 001 
000
011 010 
000 
111 000 
000 
011
011 
001 
010 010 
000 
0101 0101 000
001 
0000 0000 000 000 
0000 0000 000 000
0101 0101 000 001 
0000 0000 000 000
0100 0000 000 000 
0101 0101 000 000 
0
011 00
0 
00
1 
00
0
00
0 
00
0 
PCAR、
00H 1110
0000 100 
PC+1PC 
MEM→Q 
00H 1110 0000
001 
SP-1→SP、 
00H 1110 0000 100 
SP→AR
PC→
30H 0011 0000 000 
MEM、
Q→PC、
CC#=0 
STR→Q、
3AH 0011 0010 100
CC#=INT# 
011 00
0 
00
0
00
0 
011 00
0 
00
0
00
1 
30H 111 000 
000 
0000 0000
000 000 00
0 
011
5、设计扩展指令ADC、STC、LDRA、CALR的微程序 
TEC-XP教学机支持动
态微程序设计,即允许用户把自己设计的微程序写入控制存储器
中,当扩展指令需要执行时,直接从控制
存储器中读取对应的微指令执行即可。但写控制存
储器时,需要用到硬件描述语言VHDL,故在本次实
验中,对于扩展实验直接采用出厂已设
计好的扩展指令进行验证。 
扩展指令ADC、STC、
LDRA、CALR的执行周期相关微指令如表4-8所示,请在实验
时以单步方式进行验证。
表4-8  若干扩展指令的执行周期微程序 
指令 微地操作功下
址 能 址
CI
3~0
 SCC
3
MR
W 
~0
I
2~0
 I
8~3
 
001 011 
000
000 001 
000 
011 010 
000 
B口 A口
SST 
SSHSCI 
DCDC
2
 
1
00
0 
00
0 
00
0 
00
0
ADC 50H DR+SR30H 0011 0000 100 
+CF
DR
STC 
LDR
A 
57H 1CF 30H 0011 0000
100 
0000 0000 001 010 
0000 0000 100 000
0101 0101 000 001 5BH PCA00H 1110 0000 100
R 
PC+1
PC 
5CH MEM1C
AR H
0011 0000 001 
011 00
0 
111 001
000 
011 011 
001 
0000 0000 000 000
0100 0000 000 000 
011 00
0 
011
00
0 
CAL
R 
64H SP-1S00H 1110 0000
100 
P 
SPAR 
65H PCM00H 1110
0000 000 
EM 
66H SRPC 30H 0011 0000 100
 
100 001 
000 
100 011 
000
0000 0101 000 000 
0101 0000 000 000
00
0 
00
0 
00
1 
00
0
6、测试扩展指令 
扩展指令在使用时与基本指令不同,基本指令可以在监控环境下使用汇编命
令A以汇
编指令格式输入存储单元中,而扩展指令只能使用存储单元修改命令E以机器指令的形式
写入存储单元中。相关扩展指令的操作码编码见表4-1。 
(1)设置功能开关
测试扩展指令之前,先将TEC-XP的功能开关设置为00010,即连续运行程序、采用微
程序控制器、联机、16位机。运行“D:大板可编程器件内容”路径下的文
件,进入TEC-
XP的监控环境。 
(2)测试STC、ADC指令
①将如下测试程序段输入到主存2000H开始的存储区域中。 
  MVRD  R0 ,
0101 
  MVRD  R1 , 1010 
  *STC 
  *ADC
R0 , R1 
  RET 
注意:带
*
号的指令为扩展指令,只能使用<
br>E
命令写入,请先对照指令的操作码编码表
4-1
和指令格式写出对应指令的机
器代码。
 
②使用如下格式的G命令连续运行该程序段: 
  G 2000↙
③使用如下格式的R命令察看寄存器的内容: 
  R↙
可观察到运行结果应为R0=1112,R1=1010。 
 
(3)测试CALR
指令 
对CALR指令的测试需要设计一个有读写内存和子程序调用指令的程序。下面使用一
个
功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器
原存储区域的程
序进行测试。 
①从地址2080H开始输入下列主程序段: 
  MVRD R3 , 6
  MVRD R2 , 20F0 
  LDRR R0 , [R2] 
MVRD R8 , 2100 
  *CALR R8 
  DEC R3
  JRZ  208C 
  INC  R2 
  JR
2084 
  RET 
②从地址2100H开始输入下列子程序段: 
  OUT
80 
  MVRD R1 , 20 
  ADD R0 , R1 
  STRR
[R2] , R0 
  IN  81 
  SHR  R0 
  JRNC
2105 
  RET
③使用E命令将‘A’~‘F’这6个字符送入到存储单元20F0H~20F5H中。
④使用如下格式的G命令连续运行2080H中的程序段: 
  G 2080↙
屏幕显示运行结果为: 
  ABCDEF 
  56
⑤使用如下格式的D命令,查看20F0H~20F5H单元中的内容: 
  D 20F0↙
屏幕上显示查看结果应为: 
  0061  0062  0063  0064
0065  0066 
(4)测试指令LDRA 
编写一个使用LDRA指令将存储单元21
00H和2101H中的内容通过R0输出的程序段,
测试扩展指令LDRA的功能。
①从地址2000H开始输入下列程序段: 
  *LDRA R0 , [2100]
  OUT 80 
  IN  81 
  SHR  R0 
  JRNC
2003 
  *LDRA R0 , [2101] 
  OUT 80 
RET 
②使用E命令将要显示的两个字符“A”、“B”写入存储单元2100H和2101H中。
③在如下格式的G命令,连续运行以上程序段: 
  G 2000↙
屏幕上将会显示预设置字符‘A’、‘B’。 
实验报告要求
本次实验需完成实验报告一份,本次实验报告内容写出以下两个内容:
1、D组基本指令——程序调用指令CALA的微程序分析;
2、扩展指令LDRA的设计和测试。 
附录 
表4-1
指令机器编码和微程序入口地址对应表 
 
 
 
 
 
 
基 
 
 
本 
 
 
指 
 
令 
指令 
ADD  DR , SR 
SUB  DR ,
SR 
AND  DR , SR 
OR   DR , SR 
XOR  DR ,
SR 
CMP  DR , SR 
TEST  DR , SR 
MVRR DR
, SR 
INC   DR 
DEC  DR 
SHL  DR 
SHR
DR 
JRC  OFFSET 
JRNC  OFFSET 
JRZ
OFFSET 
JRNZ  OFFSET 
JR   OFFSET 
IN
PORT 
OUT  PORT 
PSHF 
PUSH  DR 
POP
DR 
POPF 
STRR  [DR] , SR 
LORR  DR ,
[SR] 
MVRD  DR , DATA 
JMPA  ADR 
CALA
ADR 
RET 
操作码编码 
0000 0000 
0000 0001
0000 0010 
0000 0110 
0000 0100 
0000
0011 
0000 0101 
0000 0111 
0000 1001
0000 1000 
0000 1010 
0000 1011 
0100
0100 
0100 0101 
0100 0110 
0100 0111
0100 0001 
1000 0010 
1000 0110 
1000
0100 
1000 0101 
1000 0111 
1000 1100
1000 0011 
1000 0001 
1000 1000 
1000
0000 
1100 1110 
1000 1110 
0010 0000
0010 0001 
0010 1101 
0010 1100 
0010
1010 
0010 1011 
0110 1100 
0110 1101
微程序入口地址 
04H 
05H 
06H 
07H
08H 
09H 
0AH 
0BH 
0CH 
0DH
0EH 
0FH 
10H 
10H 
10H 
10H
11H 
12H 
12H 
15H 
15H 
17H
17H 
19H 
1BH 
1DH 
1EH 
1FH
23H 
50H 
51H 
52H 
53H 
54H
55H 
56H 
57H 
 
 
 
 
扩
 
 
展 
ADC  DR , SR 
SBB  DR , SR
NOT  DR 
ASR  DR 
RCL  DR 
RCR  DR
CLC 
STC 
 
 
指 
 
令 
EI 
DI 
JMPR  SR 
LDRA  DR ,
[ADR] 
LDRX  DR , OFFSET[SR] 
STRA  [ADR] ,
SR 
STRX  DR , OFFSET[SR] 
CALR  SR 
IRET
JRS   OFFSET 
JRNS  OFFSET 
0110 1110
0110 1111 
0110 0000 
1110 0100 
1110
0101 
1110 0111 
1110 0110 
1110 0000
1110 1111 
0110 0100 
0110 0101 
58H
59H 
5AH 
5BH 
5DH 
5FH 
61H
64H 
67H 
69H 
69H 
 
表4-2
微指令中的下址确定 
CI
3
~
0
 
0000
0010 
SCC
3
~
0
 
0000(无效)
0000(无效) 
0000 
0010 
0100 
0101
0110 
0111 
判断条件 
 
MAP映射 
必转
有中断请求时转移 
JRC、JRNC、JRZ、JRNZ指令测试
JRS、JRNS指令测试 
IN指令测试 
入出栈指令测试 
微下址 
00H 
映射获得 
微下址字段值 
微下址字段值顺序寻址
微下址字段值顺序寻址 
微下址字段值顺序寻址 
微下址字段值顺序寻址
微下址字段值顺序寻址 
顺序寻址 
0011 
1110 0000(无效)
 
表4-3  MEW信号功能
表4-4  SSH和SCI控制信号 
       
表4-5  DC1和DC2控制方式
 
  
 
 
图4-5  基本指令流程图
 
图4-6  扩展指令流程 
 
 
 
图4-7  微指令表 
注:该表中的微指令为
56
位的,只需要
将每条微指令的
MRW
、
I2~0
、
I8~6
、
I
5~3
、
SST
、
SSH
、
DC2
、
DC
1
这
8
个字段的首位
0
除去即为
48
位的微指令。