实验四 微程序控制器实验
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
位的微指令。