计算机组成原理课程设计报告006Word格式文档下载.docx
- 文档编号:17537840
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:28
- 大小:295.07KB
计算机组成原理课程设计报告006Word格式文档下载.docx
《计算机组成原理课程设计报告006Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告006Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
F9
001
20080006
1
2
002
PCoe,ARce
00069003
003
ARoe’,RD,DRce’,PCinc
CC000404
6
3
004
DRoe,IRce
2)取源操作数为立即数的微程序
00000A08
5
008
NOP
00B
0008000F
00F
00069C10
010
ARoe’,RD,DRce’,PCinc
016
D0000006
4
006
DRoe,TRce
3)取目的操作数为寄存器寻址的微程序
018
007
GRSoe,Ace
4)MOV指令的微程序
00000800
xxx
044
00000E46
7
046
88000000
000
三、微程序调试的方法
1.准备工作
将试验仪的通信电缆和下载电缆分别连接电脑的RS-232串行接口和打印机接口。
接通试验仪电源。
2.下载FPGA配置数据
利用iMPACT软件将CPU.bit下载到FPGA。
3.输入微程序
利用调试软件UniDebugger将微程序写入控存。
(1)设置实验方式和观察信号。
(2)下载微程序文件day1.m19.该文件包含取指令微程序部分取操作数微程序和MOV指令执行阶段微程序
4.调试微程序
为了分析微程序是否正确,首先通过查看微指令流程判断BM和NC设置是否正确。
如果微指令执行次序不正确,那就要分析原因,检查BN和NC设置是否正确、检查uAR的各个输入信号的值是否正确,如IR、NA等。
如果伪指令执行次序是正确的,再查看指令的运行结果。
如果结果不对,就需要进一步分析每一条微指令。
分析的方法是对微指令的每一条微命令,查看相应微操作前后相关模块的数据变化是否与微流程一致。
第二天取操作数微程序的设计和调试
完成取源操作数和取目的操作数的微程序。
二、取操作数微流程
00000A08
D0000006
00061016
50000006
C0080015
60080015
40080015
00061214
20700017
40700017
C0080013
D4000011
D400000E
A0069C10
0006900D
2008000F
015
014
017
013
011
00E
00D
00C
2008000C
00000A18
026
D4000007
00061026
54000007
C0080025
60080025
40080025
00061024
20700027
40700027
D4000021
C0080023
D400001E
20089C20
0006901D
2008001F
025
027
024
023
021
01E
01D
01F
01C
2008001C
三、测试程序、数据及运行结果
格式如下:
1、测试内容:
立即寻址、寄存器寻址
测试指令(或程序):
MOV#0008H,R1
机器码:
内存地址(H)
机器码(H)
汇编指令
0000
07610008
MOV#0008H,R1
运行结果及分析:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→00B→00F→016→006→018→007→044→046→000,是正确的。
在003的微指令执行后,下一步IR=0761,说明指令是正确的;
在016的微指令执行后,TR=0008,说明取源操作数是正确的;
在018的微指令执行后,A=0000,说明取目的操作数是正确的。
指令执行前R1的内容为0000,指令执行后GRS变为0008,说明结果是正确的。
(注:
以下第2、3两条指令,在第1条指令的基础上继续执行。
)
2、测试内容:
直接寻址、寄存器间接寻址
MOV(R1),0010H
0002
053A0010
指令执行前:
指令执行后:
分析:
与微流程分析对照,微指令的执行次序为:
001→002→003→004→009→015→016→006→01B→01F→024→025→026→007→044→047→072→000,是正确的。
在003的微指令执行后,下一步IR=053A为当前执行的指令,说明指令是正确的;
寄存器R1的值为0008,由于是寄存器间接寻址,所以0008是源操作数的地址,而0008单元的内容为1111,在016的微指令执行后,TR=1111,说明取源操作数是正确的;
在026的微指令执行后,A的值为0010单元的内容:
FFFF,说明取目的操作数是正确的。
指令执行前0010单元的内容为FFFF,指令执行后内容变为1111,说明结果是正确的。
3、测试内容:
寄存器变址寻址、间接寻址
MOV0001H(R1),(0010)H
063900010010
MOV0001H(R1),(0010)H
执行指令前:
执行指令后:
分析:
001→002→003→004→00A→00C→00D→00E→017→015→016→006→01B→01F→022→023→024→025→026→007→044→047→072→000,是正确的。
在003的微指令执行后,下一步IR=0639,说明指令是正确的;
在016的微指令执行后,TR=,说明取源操作数是正确的;
在026的微指令执行后,A的值为单元的内容:
,说明取目的操作数是正确的。
指令执行前0012单元的内容为2222,指令执行后内容变为1234,说明结果是正确的。
4、测试内容:
立即数寻址、相对寻址
MOV#1234H,+0010H
077812340010
MOV#1234H,+0010
001→002→003→004→00B→00F→016→006→01B→01F→020→021→027→025→026→007→044→047→072→000,是正确的。
在003的微指令执行后,下一步IR=0778为当前执行指令,说明指令是正确的;
在016的微指令执行后,TR=1234,说明取源操作数是正确的;
由于目的操作数是相对寻址,所以操作数的地址为D+PC=0010+3=0013,即在026的微指令执行后,A的值为0013单元的内容:
指令执行前0013单元的内容为FFFF,指令执行后内容变为1234,说明结果是正确的。
第三天双操作数指令的微程序设计和调试
完成ADD、ADDC、SUB、SUBB、CMP、AND、OR、XOR、TEST9条指令的微程序设计。
二、运算指令微程序入口地址
指令助记符
指令编码
入口地址(H)
F
E
D
C
B
A
9
8
MOVsrc,dst
源地址码
目的地址码
ADDsrc,dst
048
ADDCsrc,dst
04C
SUBsrc,dst
050
SUBBsrc,dst
054
CMPsrc,dst
058
ANDsrc,dst
05C
ORsrc,dst
060
XORsrc,dst
064
TESTsrc,dst
068
INCdst
0A4
DECdst
0A8
NOTdst
0AC
三、运算类指令微程序
BM
NA
注释
00000800
指令执行入口
9870006F
TRoe,ADD,SV,PSWce
06F
ADD
9930006F
TRoe,SUBB,SV,PSWce
SUBB
98F0006F
TRoe,SUB,SV,PSWce
SUB
99400000
TRoe,AND,PSWce
TEST
00000E70
070
回送结果入口
68000000
Soe,GRSce
结果送入寄存器
071
60030072
Soe,Drce
072
结果送入DR
00052400
Droe’,Aroe’,WR
结果送入主存
四、测试程序、数据及运行结果
直接寻址、相对寻址
ADD0010H,+0002H
机器码:
0B5800100002
指令执行前
001→002→003→004→00B→00F→014→015→016→006→01B→01F→020→021→027→025→026→007→048→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=0B58,说明指令是正确的;
在016的微指令执行后,TR=0020是0010单元的内容,说明取源操作数是正确的;
在026的微指令执行后,A的值为0005(D+PC=0002+003)单元的内容:
0001,说明取目的操作数是正确的。
指令执行前,0004单元的内容为0001,指令执行后,内容变为0021(即0001+0020),说明结果是正确的。
立即寻址、间接寻址
SUB#1111H,(0010)
137912340010
001→002→003→004→00B→00F→016→006→01B→01F→022→023→024→025→026→007→050→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=1379,说明指令是正确的;
在016的微指令执行后,TR=1111为0020单元的内容,说明取源操作数是正确的;
在026的微指令执行后,A的值为0020单元的内容:
2211,说明取目的操作数是正确的。
指令执行前0004单元的内容为2211,指令执行后内容变为1100(即2211-1111)说明结果是正确的。
SUBB直接寻址、寄存器间接寻址
MOV#2222H,R1
SUBB(0010)H,R1
07612222
MOV#2222H,R1
17490010
ADD(0010)H,(R1)
指令1:
在016的微指令执行后,TR=2222,说明取源操作数是正确的;
指令执行前R1的内容为0000,指令执行后GRS值变为2222,说明结果是正确的。
指令2:
001→002→003→004→00B→00F→012→013→014→015→018→007→054→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=1749,说明指令是正确的;
在016的微指令执行后,TR=1111是0010单元的内容,说明取源操作数是正确的;
在018的微指令执行后,A=2222,说明取目的操作数是正确的。
指令执行前R1=2222,指令执行后内容变为1110(即2222-1111),说明结果是正确的。
第四天单操作数运算和移位指令的微程序设计与调试
完成单操作数运算指令INC、DEC、NOT和7条位移指令微程序的设计。
SARdst
092
SHLdst
094
SHRdst
096
ROLdst
098
RORdst
09A
RCLdst
09C
RCRdst
09E
INCdst
000008A4
1810006F
SR,PSWce
SAR
SHL
SHR
1820006F
SL,PSWce
ROL
ROR
RCL
RCR
1A70006F
INC,SV,PSWce
INC
1AB0006F
DEC,SV,PSWce
DEC
19F0006F
NOT,SV,PSWce
NOT
存结果
测试内容:
MOV#0020H,R1
07610020
在016的微指令执行后,TR=0020,说明取源操作数是正确的;
指令执行前R1的内容为0000,指令执行后GRS变为0020,说明结果是正确的。
以下第1、2两条指令,在第1条指令的基础上继续执行。
寄存器寻址
SHLR1
0041
001→002→003→006→018→007→094→06F→070→000,是正确的。
在003的微指令执行后,下一步IR=0041,说明指令是正确的;
在018的微指令执行后,A=0020为寄存器R1的内容,说明取目的操作数是正确的。
指令执行前R1内容为0020,指令执行后R1内容变为0010即GRS=0010,说明结果是正确的。
寄存器间接寻址
SHR(R1)
0069
001→002→003→006→019→025→026→007→096→06F→071→072→000,是正确的。
在003的微指令执行后,下一步IR=0069,说明指令是正确的;
在026的微指令执行后,A=2000为单元0020的内容,说明取目的操作数是正确的。
指令执行前单元0020内容为2000,指令执行后单元0020内容变为4000,说明结果是正确的。
ROL+0002H
00980002
与微流程分析对照,微指令的执行次序为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 报告 006