计算机组成原理实验指导-2012-1 - 图文(7)

2019-06-04 22:58

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 0?PCDI#=0 下址 CI3~0 SCC3MR~0 I2~0 I8~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 SSH\\SCI DCDC2 1 W 0101 0101 000 001 0101 0101 000 001 0000 0000 000 000 0000 0000 000 000 0101 0101 000 001 、00H 1110 0000 100 111 000 011 000 001 000 000 000 0 PC?AR、00H 1110 0000 100 PC+1?PC MEM?IR 00H 1110 0000 001 /MAP 00H 0010 0000 100 1DH PC?AR、1CH 0011 0000 100 PC+1?PC、CC#=0 1CH 30H MEM→30H 0011 0000 001 DR、CC#=0 STR→Q、3AH 0011 0010 100 CC#=INT# 011 000000 0000 000 000 0000 0000 000 000 000 000 000 011

在传送指令MVRD R0 , D执行过程中,前3条取指相关的微指令和最后1条中断处理微指令与ADD之前完全相同,这里只对不同的3条微指令进行介绍。 (1)地址映射微指令(/MAP)

本条微指令主要是由地址映射部件,根据指令操作码给出对应的指令周期微程序的入口地址,故,本条微指令中有关运算器和访存的控制信号均无效,即I2~0=000,I8~6=001,I5~3=010,

A口=0000,B口=0000,SST=000(标志位保持不变),SSH SCI=000,DC1=000,DC2=000。 微地址的映射用CI的2号命令控制,即CI3~0=0010(指令功能分支),SCC3~0=0000(必转)。下址字段无效,写00H。根据地址映射表4-1可知,MVRD指令的微程序入口地址为1DH,故该微指令执行后,下址指示灯显示为0001 1101。

(2)取机器指令的第二个字节微指令(PC?AR、PC+1?PC、CC#=0)

由于MVRD指令是双字指令,在取指阶段仅从主存中取得了指令中包含操作码的高字部分,这里要执行该指令时,必须获取指令的第二个字数据,即指令中的16位立即数。因此,在完成地址映射后,应执行该微指令,再次读取主存。

本条微指令的执行与取指阶段PC?AR、PC+1?PC微指令的操作控制部分完全相同,但顺序控制部分,根据指令的执行流程可知,下条微指令应将使用主存中读得的立即数给目的寄存器赋值。因此CI3~0=0011(条件转移),SCC3~0=0010(必转),所要转向的地址由下址字段给出,即1CH。

(3)访存赋值微指令(MEM→DR、CC#=0)

本条微指令是将存储单元中读得的立即数给目的寄存器赋值。这里使用运算器D+0?R操作实现,其中D为从存储单元中读出的操作数。因此,MRW=001(内存读),I2~0=111(选择外部数据D和0),I8~6=011(F?B),I5~3=000(加法),A口未用,B口=0000(指定目的寄存器R0),SST=000(标志位保持不变),SSH SCI=000(Cin=0)。

本条微指令中DC1=000(无效),DC2=000(无操作)。

本条微指令执行结束时,MVRD指令功能已完成,即指令的执行周期完成,按照指令周期的流程,这里需要检查系统是否有中断请求。因此,本条微指令执行结束即应转向中断判断微指令,CI3~0=0011码(条件转移),SCC3~0=0000(必转),下址字段给出中断判断微指令的地址,30H。

4、分析D组基本指令——子程序调用指令CALA ADR的微程序

指令CALA是将立即数传送到指定寄存器的数据传送类指令,该指令是双字长双操作数指令。其指令格式如下所示,则指令CALA ADR的机器代码的高16位为11001110 00000000,其中高8位为CALA指令的操作码(详见代码表4-1),接下来的4位对应目的寄存器R0。本次实验中,只是验证指令的微程序,至于该指令所用到的直接地址可采用存储单元中的随机值。

先按下RESET按键,复位系统,然后通过16位的数据开关SW拨入指令代码,再按下RESET按键,此时指示灯Microp亮,其它灯全灭。

由附录图4-5所示的基本指令流程可知,子程序调用指令CALA ADR的指令周期共包含9个CPU周期,执行阶段比B类指令多用2个CPU周期。CALA指令的微程序如表4-7所示。在完成以上设置后,接下来每次按下START按键,控制器就会执行一条微指令,请在实验前完成对表4-7中每条微指令的分析,在实验中验证,并分析每条微指令的具体功能。

表4-7 子程序调用指令CALA ADR的微程序

微地操作功能 址 00H 0?PC下址 CI3~0 SCC3MR~0 I2~0 I8~3 001 011 B口 A口 SST SSH\\SCI DCDC2 1 W 、00H 1110 0000 100 0101 0101 000 001 111 0001H 02H 03H 1FH 20H 21H 22H DI#=0 PC?AR、00H 1110 0000 100 PC+1?PC MEM?IR 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 000 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 0 011 000 001 000 000 000 0 00PC?AR、00H 1110 0000 100 PC+1?PC 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 011 00000 0 011 000 001 30H STR→Q、3AH 0011 0010 100 CC#=INT# 111 000 000 0000 0000 000 000 000 011 5、设计扩展指令ADC、STC、LDRA、CALR的微程序

TEC-XP教学机支持动态微程序设计,即允许用户把自己设计的微程序写入控制存储器中,当扩展指令需要执行时,直接从控制存储器中读取对应的微指令执行即可。但写控制存储器时,需要用到硬件描述语言VHDL,故在本次实验中,对于扩展实验直接采用出厂已设计好的扩展指令进行验证。

扩展指令ADC、STC、LDRA、CALR的执行周期相关微指令如表4-8所示,请在实验时以单步方式进行验证。

表4-8 若干扩展指令的执行周期微程序

指令 微地操作功下址 能 址 CI3~0 SCC3MR~0 I2~0 I8~3 001 011 000 B口 A口 SST SSH\\SCI DCDC2 1 W ADC 50H DR+SR30H 0011 0000 100 +CF?DR STC 57H 1?CF LDRA 5BH PC?AR PC+1?PC 5CH MEM?1CAR H CALR P 0011 0000 001 30H 0011 0000 100 00H 1110 0000 100 0000 0000 001 010 000 000 000 0 000 001 000 011 010 000 0000 0000 100 000 0101 0101 000 001 000 011 00111 001 000 011 011 001 0000 0000 000 000 0100 0000 000 000 011 000 011 000 64H SP-1?S00H 1110 0000 100 SP?AR 65H PC?M00H 1110 0000 000 EM 66H SR?PC 30H 0011 0000 100

100 001 000 100 011 000 0000 0101 000 000 0101 0000 000 000 000 000 001 000 6、测试扩展指令

扩展指令在使用时与基本指令不同,基本指令可以在监控环境下使用汇编命令A以汇编指令格式输入存储单元中,而扩展指令只能使用存储单元修改命令E以机器指令的形式写入存储单元中。相关扩展指令的操作码编码见表4-1。 (1)设置功能开关

测试扩展指令之前,先将TEC-XP的功能开关设置为00010,即连续运行程序、采用微程序控制器、联机、16位机。运行“D:\\大板可编程器件内容\\”路径下的PCEC16.EXE文件,进入TEC-XP的监控环境。 (2)测试STC、ADC指令

①将如下测试程序段输入到主存2000H开始的存储区域中。

MVRD R0 , 0101 MVRD R1 , 1010 *STC

*ADC R0 , R1

RET

注意:带*号的指令为扩展指令,只能使用E命令写入,请先对照指令的操作码编码表4-1和指令格式写出对应指令的机器代码。

②使用如下格式的G命令连续运行该程序段:

G 2000↙

③使用如下格式的R命令察看寄存器的内容: R↙ 可观察到运行结果应为R0=1112,R1=1010。

(3)测试CALR 指令

对CALR指令的测试需要设计一个有读写内存和子程序调用指令的程序。下面使用一个功能是读出内存中的字符,将其显示到显示器的屏幕上,转换为小写字母后再写回存储器原存储区域的程序进行测试。

①从地址2080H开始输入下列主程序段:

MVRD R3 , 6 MVRD LDRR MVRD *CALR DEC

R2 , 20F0 R0 , [R2] R8 , 2100 R8 R3

JRZ 208C

INC R2 JR 2084 RET

②从地址2100H开始输入下列子程序段:

OUT ADD STRR IN SHR JRNC

80 R0 , R1 [R2] , R0 81 R0 2105

MVRD R1 , 20

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指令将存储单元2100H和2101H中的内容通过R0输出的程序段,测试扩展指令LDRA的功能。

①从地址2000H开始输入下列程序段:

*LDRA R0 , [2100] OUT 80 IN SHR

81 R0

JRNC 2003

*LDRA R0 , [2101]

OUT 80 RET

②使用E命令将要显示的两个字符“A”、“B”写入存储单元2100H和2101H中。 ③在如下格式的G命令,连续运行以上程序段: G 2000↙ 屏幕上将会显示预设置字符‘A’、‘B’。

实验报告要求

本次实验需完成实验报告一份,本次实验报告内容写出以下两个内容:


计算机组成原理实验指导-2012-1 - 图文(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:会议室接待室使用管理规定

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

马上注册会员

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