1、简单模型机的组成与程序运行计算机组成原理实验报告内蒙古师范大学计算机与信息工程学院计算机组成原理课程设计报告题目:_ 简单模型机的组成与程序运行_ 姓 名学 号班 级指导教师孟昭进日 期2011-7-14 1 任务描述设计题目名称:简单模型机的组成与程序运行要求:基于TD-CMA 计算机组成原理教学实验系统,设计一个简单的计算机整机系统模型机,分析其工作原理。根据模型机的数据通路以及微程序控制器的工作原理,设计完成以下几条机器指令和相应的微程序,输入程序并运行。IN R0 ;IN -R0SUB 0DH ;R0 - 0DH - R0,直接寻址SHL R0 ;将R0寄存器中的内容逻辑左移STA 0
2、EH,R0 ;R0-0EH,直接寻址LDA 0FH,R0 ;0FH-R0,直接寻址LOP: DEC R0 ;R0-1-R0 BZC EXIT ;当FC或FZ为1时,转到EXITJMP LOPEXIT: OUT 0EH,R0 ;0EH-LED,直接寻址0DH、0EH、0FH单元内容分别为03H、04H、02H。2 设计设备PC机一台,TD-CMA实验系统一套。3 设计原理和方法3.1设计原理3.1.1数据格式:本实验计算机采用定点补码表示法表示数据,字长为8位,其格式如下:76 5 4 3 2 1 0符号尾数其中第七位为符号位,数值表示范围是:-1X13.1.2 指令格式所有单字节指令( SUB
3、等 )格式如下:7 6 5 43 21 0OP-CODERSRD其中OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:RS 或 RD选定的寄存器00011011R0R1R2R3本实验的输入IN指令和OUT指令采用单字节指令,其格式如下:7 6 5 4 (1)3 2 (1)1 0 (1)OP-CODERSRD本实验中的两个访问指令,即存数STA,一条转移指令,即无条件转移指令JMP,指令格式如下:7 6 5 4 (1)3 2 (1)1 0 (1)7-0 (2)OP-CODEMRDD其中OP-CODE为操作码,RD为目的寄存器地址(STA、LDA指令使用),D为位移量(正负均可),
4、M为寻址模式,其定义如下:寻址模式M有效地址E说明00011011E=D E=(D) E=(RI)+D E=(PC)+D直接寻址间接寻址 RI变址寻址相对寻址3.1.3指令系统 本实验共有10条基本指令,其中算术指令有2条(DEC、SUB),访问内存指令和程序控制指令7条,输入指令1条。3.按微指令格式,参照微程序流程图将每条微指令代码化,译成二进制微代码。系统涉及到的微程序流程见图3-1-4 所示,当拟定“取指”微指令时,该微指令的判别测试字段为P测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P的测试结果出现多路分支。 微程序流程图3-1-4微指令字长共24位,格式如下:232
5、221201918-1514-1211-98-65-0M23M22WRRDIOMS3-S0A字段B字段C字段MA5-MA0A字段B字段C字段14 13 12选择11 10 9选择8 7 6选择000NOP000NOP000NOP001LDA001ALU-B001P(1)010LDB010R0_B010保留011LDR0011保留011保留100保留100保留100保留101LOAD101保留101LDPC110LDAR110PC_B110P(4)111LDIR111保留111保留运算器逻辑功能表:运算类型S3 S2 S1 S0CN功能逻辑运算000000010010 00110100xxxxx
6、F=A(直通)F=B(直通)F=AB(直通)F=/A A+B(直通)F=/A(直通)移位运算010101100111x0101F=A 不带进位循环右移B(取低3 位)位 (FZ)F=A逻辑右移一位 (FZ)F=A 带进位循环右移一位 (FC,FZ)F=A 逻辑左移一位 (FZ)F=A 带进位循环左移一位 (FC,FZ)算术运算10001001101010111100110111101111xxxxxxxx置FC=CN (FC)F=A 加B (FC,FZ)F=A 加B 加FC (FC,FZ)F=A 减B (FC,FZ)F=A 减1 (FC,FZ)F=A 加1 (FC,FZ)(保留)(保留)4 代
7、码清单 4.1机器指令代码; /* Start Of MicroController Data */;/*其中地址和微指令均为十六进制*/;/地址 微指令 操作*/ $P 00 20 ; START: IN R0,00H 从IN单元读入数据送R0 $P 01 00 $P 02 84 ; SUB R0,R1 R0-R1-R0 $P 03 A0 ; LL R0,R0 R0 LEFTMOVE -R0 $p 04 D0 ; STA 0EH,R0 R0-E $P 05 2E $P 06 C0 ; LAD 00 0F R0 $P 07 2F $P 08 70 ; DEC R0 $P 09 F0 ; BZC
8、 11,02H $P 0A 0D $P 0B E0 ; JMP 00,08H $P 0C 08 $P 0D C0 ; OUT OEH,R0 $P 0E 2E $P 0F 30 ; $P 10 40 ; $P 11 50 ; $P 12 50 ; $P 13 50 ; $P 2F 02 ; ; /* End Of Main Memory Data */4.2化简后的微程序代码; /* Start Of MicroController Data */;/*其中地址和微指令均为十六进制*/;/地址 微指令 操作*/ $M 00 000001 ; NOP $M 01 006D43 ; PC-AR, P
9、C加1 $M 03 107070 ; MEM-IR, P $M 04 002405 ; RS-B $M 05 04B201 ; A加B-RD $M 06 002407 ; RS-B $M 07 013201 ; A与B-RD $M 08 106009 ; MEM-AR $M 09 183001 ; IO-RD $M 0A 106010 ; MEM-AR $M 0B 000001 ; NOP $M 0C 103001 ; MEM-RD $M 0D 200601 ; RD-MEM $M 0E 005341 ; A-PC $M 0F 0000CB ; NOP, P $M 10 280401 ; RS
10、-IO $M 11 103001 ; MEM-RD $M 12 063201 ; A加1-RD $M 13 002414 ; RS-B $M 14 05B201 ; A减B-RD $M 15 002416 ; RS-B $M 16 01B201 ; A或B-RD $M 17 002418 ; RS-B $M 18 03B201 ; A右环移-RD $M 1B 005341 ; A-PC; /* End Of MicroController Data */5 设计运行结果分析.出错情况:IN的初始值为00,所以将00赋值给R0,寄存器B为随机数,与实验要求不符;逻辑左移没有实现,所得结果不正确;
11、JMP指令的跳转没有实现,微指令没问题;.出错原因:忘记给地址0DH赋值;微指令流程图有问题,经过改正运行通过;经过检查和同学的讨论及老师的指导,有了改善,但仍需调整。.运行结果例子:实现指令IN R0,00H的截屏如下:初始状态:6 设计小结(即收获和体会)通过本次课程设计了解了简单模型机的结构及其原理,通过给定的机器指令,基于计算机组成及工作原理的基础上,确定了模型机的数据通路结构,根据机器指令和微指令的译码情况,设计了机器指令格式和微指令格式。虽然最后的结果不是很理想,未能完全将其功能实现,但对简单模型机有了一定的了解。 通过本次课程设计体会到团队合作的重要性,在做实验的过程中细心和耐心也是非常重要的。还让我相信,只要自己在每一次实践中都能仔细思考,课程设计其实都不会很难,关键在于自己能不能认真思考,能不能亲自动手做实验,而不是想着其他人的劳动果实,其次你还要多操作,只有多操作才能从中发现问题,才能及时向老师和同学请教,解决问题,从而更好的掌握书本中知识。还有通过这次实践也让我懂得了:学校安排课程设计目的不在于你做了多少,不在于你做得好不好,关键在于你能否认真去对待,在于你能否通过这次设计对课本上知识有了更深刻的认识,在于能否从中学到书本上学不到的知识。因此,我会认真地对待我的每一次实验。最后感谢老师的指导。附录实验电路连接图:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1