版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理课程设计报告班级:计算机物联网1504班姓名:杨杰铭 学号:20154530完成时间: 201&1.1 一、 课程设计目的1.在实验机上设计实现机器指令及对应的微指令(微程序)并验证,从而进一步掌握微程序设计控制器的基本方法并了解指令系统与硬件结构的对应关系;2.通过控制器的微程序设计,综合理解计算机组成原理课程的核心知识并进一步建立整机系统的概念;3.培养综合实践及独立分析、解决问题的能力。二、 课程设计的任务针对COP2000实验仪,从详细了解该模型机的指令/微指令系统入手,以实现乘法和除法运算功能为应用目标,在COP2000的集成开发环境下,设计全新的指令系统并编写对应的微程序;之后编写实现乘法和除法的程序进行设计的验证。三、 课程设计使用的设备(环境)1.硬件COP2000实验仪PC机2.软件COP2000仿真软件四、 课程设计的具体内容(步骤)1•详细了解并掌握COP2000模型机的微程序控制器原理,通过综合实验来实现该模型机指令系统的特点:该模型机指令系统的操作码由8位机器码组成,前6位机器码用于区分操作类型,后2位机器码是在操作中涉及通用寄存器时提供通用寄存器的寻址。进位跳转指令JC要求倒数第3、4位为00零跳转指令JZ要求倒数第3、4位为01无条件跳转指令JMP要求倒数第3、4位为11该模型机微指令系统的特点(包括其微指令格式的说明等):该模型机的微指令寄存器地址为00H-0FFH,共256*30位,每条微指令的控制字段部分有30位,控制方式采用的是直接控制而非编码控制,即一位对应一个逻辑开关的状态。可惜的是,此微指令无跳转方式和下指字段,因而仅通过微指令无法在微指令寄存器中跳转,即在一条机器指令所对应的微程序中,只有顺序执行操作。原系统中每条机器指令最多四个周期(当然不是必须的,可以通过机器指令的机器码的设置使一个机器指令包含更多微指令),即此模型机中每个微程序最多四条微指令,多余的空位则浮空处理。2.计算机中实现乘法和除法的原理(1)无符号乘法①算法流程图:乘法采用移位相加的操作来完成,由于位数限制,无溢出可能因为积德长度限定在8位以内,由于需要储存中间结果及初始被乘数的指,乘数还需要在过程中进行移位,即两个寄存器无法完成此工作。输入乘数,被乘数将乘数取至R0,被乘数取至R1
中间结果A初始化为o被乘数已为0?将R1进行带进位右移,产生标志
位信息后存回R1(用W寄存器)检测移出位为0?对A进行左移操作,结果存至A对检测移出位为0?对A进行左移操作,结果存至A 乘数R0,结果存至W将A存入R0,
即为最终结果由上可知,完成乘法操作需要存取操作数,移位操作,测试标志位跳转,加法操作同时为了调用加法程序,还需要子程序调用及返回操作。②硬件原理框图:寄存器A与R0,R3,EM通信寄存器W与R2,EM通信通用寄存器组RO,R1,R2与EM皆可通信
(2)无符号除法①算法流程图:使用余数恢复法。先用减测试进行测试若够减,则进行减法操作,不够减直接进行移位操作。②硬件原理框图:3.对应于以上算法如何分配使用COP2000实验仪中的硬件(初步分配,设计完成后再将准确的使用情况填写在此处)ST:减测试VSUBT>/位测试VTEST>时需使用A/W:运算时使用L/D/R:ROR/ROL时使用乘法R0:乘数R1:被乘数R2:中间结果/乘积除法R0:除数R1被除数/余数R2:商R3:除法次数4.在COP2000集成开发环境下设计全新的指令/微指令系统设计结果如表所示(可按需要增删表项)(1)新的指令集(如果针对乘除法设计了两个不同指令集要分别列表)助记符机器码1机器码2指令说明ROR对A寄存器的右移操作,不改变标志位ROL对A寄存器的左移操作,不改变标志位SUBTA,#II减测试,将A减去#II改变标志位,但不改变A值TESTA,#II位测试,用A与II相与,但不改变A值MOVR?,#II将立即数II送入R?MOVA,#II将立即数II送入A?MOVA,R?将寄存器R?的值取到A中MOVR?,A将寄存器A的值放到R?中ADDA,R?A与R?相加,结果存入A中
SUBA,R?A与R?相减,结果存入A中JMPMM跳转到MM标注的位置JZ MM根据零标志跳转到MM位置JC MM根据进位标志跳转到MM位置PUSHA将A压栈POP A将A弹栈LOOPMM当寄存器R3的值不为0时,跳转至MM2)新的微指令集助记符状态徵地址徵程序埶据输出埶据打入地址输出运算器移f立控制PC_FATCH_TO->00CBFFFF浮空指令寄存器店FC输出蹴出写入+101FFFFFF浮空浮空蹴出+102FFFFFF浮空浮空赚出+103FFFFFF浮空浮空赚出+1NDF04FFFFFF浮空浮空臟出+105FFFFFF浮空浮空峨出+106FFFFFF浮空浮空峨出+107FFFFFF浮空浮空峨出+1MOV A.#11T108C7FFF7存贮器值EM寄存器AFC输出峨出+1+1TO09CBFFFF浮空指令寄存器起FC输出峨出写入+10AFFFFFF浮空浮空蹴出+10BFFFFFF浮空浮空爛出+1MOV 丸R?T1OCFFF7F7寄存器值的寄存器A浮空峨出+1TO0DCBFFFF浮空指令寄存器店FC输出峨出写入+10EFFFFFF浮空浮空峨出+1OFFFFFFF浮空浮空峨出+1MOV R£#口T110C7FEIFF存贮器值EM寄存器R?FC输出唏出+1+1TO11CBFFFF浮空指令寄存器FC输出唏出写入+112FFFFFF浮空浮空蹴出+113FFFFFF浮空浮空蹴出+1MOV RHAT114FFFB9FALU直通寄存器R?浮空蹴出+1TO15CBFFFF浮空指令寄存器店FC输出蹴出写入+116FFFFFF浮空浮空爛出+117FFFFFF浮空浮空赚出+1Aim A.R?T218FFF7EF寄存器值R?寄存器W浮空臟出+1T119FFFE9UALU直通寄存器A标志位C,E浮空加运算+1TO1ACBFFFF浮空指令寄存器TRFC输出嚇出写入+1
助记符状态徵地址徵程序埶据输出埶据打入地址输出 运算器移位控制血PCSUB 扎R?T21CFFFFEF寄存器值R? |寄存器W 浮空 端出+1T1inFFFE91ALU直通寄存器A标志位C,Z浮空减运算+1TOIECBFFFF浮空指令寄存器IRFC输出蹄出写A.+1IFFFFFFF浮空浮空蹄出+1RURT120FFFFB7AL1T&移寄存器A浮空騰出带进位右移+1TO21CBFFFF浮空指令寄存器IRFC输出鳩出写A.+122FFFFFF浮空浮空鳩出+123FFFFFF浮空浮空端出+1RULT124FFFFD7ALU左移寄存器A浮空端出帯进位左移+1TO25CBFFFF浮空指令寄存器IRFC输出蹄出写A.+126FFFFFF浮空浮空蹄出+127FFFFFF淨空浮空騰出+1SUET 扎R?T428FFEF9FALU直通堆栈寄存器ST浮空鳩出+1T329FFF7EF寄存器值R?寄存器W浮空鳩出+1T22AFFFE91ALU直通寄存器A标志位C,Z浮空减运算+1T12BFFFF57堆栈寄存器ST寄存器A浮空端出+1l.TOEFTO2CCBFFFF浮空指令寄存器IRFC输出蹄出写A.+12DFFFFFF浮空浮空蹄出+12EFFFFFF浮空浮空騰出+12FFFFFFF浮空浮空鳩出+1TEST A.#11T430FFEF9FALU直通堆栈寄存器ST浮空嚇出+1T331C7FFEF存贬器值EM寄存器WFC输出端出+1+1T232FFFE93ALU直通寄存器A标志位C,Z浮空与运算+1T133FFFF57堆栈寄存器ST寄存器A浮空蹄出+1l.TOEFTO34CBFFFF浮空指令寄存器IRFC输出蹄出写A.+135FFFFFF浮空浮空鵬出+136FFFFFF浮空浮空鳩出+1其中减测试与位测试均占用5个节拍5.用设计完成的新指令集编写实现无符号二进制乘法、除法功能的汇编语言程序(1)乘法4位乘法的算法流程图与汇编语言程序清单:输入乘数,被乘数将乘数取至R0,被乘数取至R1
中间结果A初始化为o被乘数已为0?将R1进行带进位右移,产生标志位信息后存回R1(用W寄存器)检测移出位为0检测移出位为0?对A进行左移操作,结果存至A对A进行左移操作,并将结果加上 —n 乘数R0,结果存至W将A存入R0,即为最终结果将乘数放在R0,被乘数放在R1中MOVR0,#04H;乘数MOVR1,#0AH;被乘数MUL:MOVR2,A;将中间结果暂存入R2保护MOVA,R1;得到被乘数TESTA,#0FH;被乘数为0?JZEND;为0结束TESTA,#01H;被乘数末位为0?ROR;右移,不产生标志MOVR1,A;将被乘数保存MOVA,R2;得到乘数JZMUL1;此处为TESTA,#01H的判断结果ADDA,R0;末位不为0,则加上乘数MUL1:ROL;中间结果左移JMPMUL;循环ENDENDS2)除法
4位除法的算法流程图与汇编语言程序清单采用余数恢复法MOVR0,#08H;除数MOVR1,#36H;余数/被除数MOVR2,#00H;商MOVR3,#05H;移位次数MOVA,R1;判断被除数是否为0TESTA,#0FFHJZOVERF;为0则跳转至除法中断。置除数、商为0SUBA,R0JCENDS;不够除MOVA,R0;将除数移位对阶ROLROLROLROL;在这里看似使用4次移位麻烦,但若使用循环,来回挪动操作数MOVR0,A;将更加麻烦MOVA,R1;看首位够不够减,若够减,商应大于4位,除法溢出,置除数商为SUBTA,R0;0FFHJCDIVJMPOVERDIV:MOVA,R1SUBTA,R0 ;测试是否够减JCDIV1SUBA,R0;够减则用被除数减去除数MOVR1,AMOVA,#1H;这里使用简单减法将标志位清0,取消对移位的干扰SUBA,#0HMOVA,R0;将除数右移RORMOVR0,AMOVA,R2ROL;将商左移,够减时商为1ADDA,#01HMOVR2,AMOVA,R3SUBA,#01H;减少技术次数MOVR3,AJZENDSJMPDIVDIV1:;不够减的情况,直接将除数右移MOVR1,AMOVA,#1HSUBA,#0HMOVA,R0RORMOVR0,AMOVA,R2ROLMOVR2,A;将商左移,不够减时商为0MOVA,R3SUBA,#01H ;减少计数次数MOVR3,AJZENDSJMPDIVOVERF:MOVR1,#0MOVR2,#0JMPENDSOVER:MOVR1,#0FFHMOVR2,#0FFHJMPENDSNOP6.上述程序的运行情况(跟踪结果)按下表填写描述以上各程序运行情况的内容。按每个程序一张表进行。程序运行的过程乘法指令的运行过程,截取前几个循环(10*10的乘法)助记符状态徴地址微程序數据输出數据打入.地址输出运算器移位控制uPCPC00_FATCHTO00CBFFFF浮空指令寄存器抚FC输出唏出写入.+100NOVRO,#0AT110C7FBFF存贮器值EM寄存器R?FC输出唏出+1+1TO11CBFFFF浮空指令寄存器抚FC输出唏出写入+102MOVRl,#0AT110C7FBFF存贮器值EM寄存器R?FC输出赚出+1+1TO11CBFFFF浮空指令寄存器TRFC输出唏出+104NOVR2,AT114FFFB9FALU直通寄存器R?浮空唏出+1TO15CBFFFF浮空指令寄存器抚FC输出唏出写扎+105MOVA,R1T1OCFFF7F7寄存器值曲寄存器A浮空唏出+1TOODCBFFFF浮空指令寄存器TRFC输出赚出+106TESTA,#UFT430FFEF9FALU直通堆栈寄存器ST浮空唏出+1T331C7FFEF存贮器值颐寄存器wFC输出唏出+1+1T232FFFE93ALU直通寄存器A标志位c,Z浮空与运算+1T133FFFF57堆栈寄存器ET寄存器A浮空唏出+107MOVA,R3TO34CBFFFF浮空指令寄存器TRFC输出赚出+108J7 15T154C6FFFF存贮器值EM寄存器FCFC输出唏出+1写几TO55CBFFFF浮空指令寄存器1RFC输出唏出写入+1OATESTA,#01T430FFEF9FALU直通堆栈寄存器ST浮空唏出+1T331C7FFEF存贮器值颐寄存器WFC输出唏出+1+1T232FFFE93ALU直通寄存器A标志位C,Z浮空与运算+1T133FFFF57堆栈寄存器ET寄存器A浮空唏出+1OB_FATCHTO34CBFFFF浮空指令寄存器1RFC输出唏出写入+1OCRORT120FFFFB7ALU右移寄存器A浮空唏出帯进位右移+1TO21CBFFFF浮空指令寄存器TRFC输出唏出写入+1ODMOVRl,AT114FFFB9FALU直通寄存器R?浮空赚出+1TO15CBFFFF浮空指令寄存器TRFC输出唏出写入+1OEMOVA.R2T1OCFFF7F7寄存器值R?寄存器A浮空唏出+1TOODCBFFFF浮空指令寄存器1RFC输出唏出写入+1
助记符状态徵地址徵程序数据输出数揺打入地址输出运算器移f立控制uPCPCOEMOV扎R2T1OCFFF7F7寄存器值R?寄存器A浮空唏出+1TOODCBFFFF浮空指令寄存器IRFC输出唏出写A.+1OFJ7 12T154C6FFFF存贬器值EM寄存器PCFC输出唏出+1写入TO55CBFFFF浮空指令寄存器IRFC输出唏出写A.+112ROLT124FFFFII7ALU左移寄存器A浮空唏出帯进位左移+1TO25CBFFFF浮空指令寄存器IRFC输出唏出写扎+113卩任,04T15CC6FFFF存贬器值EM寄存器氏FC输出唏出+1写入TO5DCBFFFF浮空指令寄存器IRFC输出唏出写扎+104MOVR2jAT114FFFB9FAL1J直通寄存器曲浮空唏出+1TO15CBFFFF浮空指令寄存器IRFC输出唏出写入+105MOV扎R1T1OCFFF7F7寄存器值R?寄存器A浮空瞒出+1TOODCBFFFF浮空指令寄存器IRFC输出瞒出写入+106TESTA.#0FT430FFEF9FALU直通堆栈寄存器ST浮空瞒出+1T331C7FFEF存贬器值EM寄存器那FC输出唏出+1+1T232FFFE93ALU直通寄存器A标志位C,Z浮空与运算+1T133FFFF57堆栈寄存器ST寄存器A浮空臟出+107MOV扎R3TO34CBFFFF浮空指令寄存器IRFC输出臟出写扎+108JZ 15T154C6FFFF存世器值EM寄存器FCFC输出赚出+1写几TO55CBFFFF浮空指令寄存器IRFC输出赚出写A.+1OATESTA.#01T430FFEF9FALU直通堆栈寄存器ST浮空赚出+1T331C7FFEF存归器值EM寄存器WFC输出峨出+1+1T232FFFE93ALU直通寄存器A标志位C,Z浮空与运算+1T133FFFF57堆栈寄存器ST寄存器A浮空爛出+1OB_FATCHTO34CBFFFF浮空指令寄存器IRFC输出赚出写A.+1OCRORT120FFFFB7ALU右移寄存器A浮空赚出带进f立右移+1TO21CBFFFF浮空指令寄存器IRFC输出賺出写入.+1OHMOVRLAT114FFFB9FALU直通寄存器即浮空赚出+1O
除法运行结果(54/8)一个循环助记符状态徵地址徵程序数据输出数拥打入地址输出 运算器 移位控制uPCPC00_FATCHTO00CBFFFF浮空 指令寄存器IR 理输出 嘴出写几I+100MOVRD,#08T110C7FBFF存贮器值EM寄存器的FC输出臟出+1+1TO11CBFFFF浮空指令寄存器理输出嚇出写A.+102MOVRl,#36T110C7FBFFCBFFFF存贮器值EM寄存器R?FC输出赚出+1+1TO11浮空指令寄存器耳FC输出嚇出写入+104MOVR2,#UUT110C7FBFFCBFFFF存贮器值EM寄存器R?FC输出赚出+1+1TO11浮空指令寄存器耳FC输出蹴出写入+106MOVR3,#05T110C7FBFF存贮器值颐寄存器的理输出嘴出+1+1TO11CBFFFF浮空指令寄存器耳FC输出臟出写人+108MOV扎R1T1ocFFF7F7寄存器值R?寄存器A浮空嘴出+1TOODCBFFFF浮空指令寄存器耳FC输出臟出写人+109TESTA.#FFT430FFEF9FALU直通堆栈寄存器ST浮空嚇出+1T331C7FFEFFFFE93存贮器值EM寄存器wFC输出赚出+1+1T232ALU直通寄存器A标志位c,Z浮空与运算+1T133FFFF57CBFFFF堆栈寄存器ST寄存器A浮空赚出+1UAUKDEFFFTO34浮空指令寄存器IRFC输出蹴出写入+1UBJ7 40T154CBFFFF存贮器值颐寄存器FC理输出嘴出+1写人TO55CBFFFF浮空指令寄存器耳FC输出臟出写人+1UDMOVA.ROT1OCFFF7F7寄存器值R?寄存器A浮空嚇出+1TOODCEFFFFFFFFD7浮空指令寄存器TRFC输出赚出写几+1UERULT124AL1咗移寄存器A浮空嚇出帝进位左移+1TO25CBFFFFFFFFD7浮空指令寄存器店FC输出赚出写几+1OFRULT124ALU左移寄存器A浮空蹴出帯进位左移+1TO25CBFFFF浮空指令寄存器IR理输出嘴出写几+110RULT124FFFFD7ALU左移寄存器A浮空臟出带进位左移+1TO25CBFFFF浮空指令寄存器IR理输出嘴出写几+111RULT124FFFFD7|alu左移1寄存器A|臟出|带进位左移|pi
助记符状态徴地址徵程序数据输出数据打入地址输出运算器移位控制uPCPC12MOVRO,AT114FFFB9FALl[直通寄存器曲浮空峨出1+1TO15CEFFFF浮空指令寄存器IRFC输出嘴出写几+113MOVA.R1T1OCFFF7F7寄存器值即寄存器A浮空蹴出+1TOODCBFFFF浮空指令寄存器IRFC输出燭出写入+114SUIiTA.ROT428FFEF9FALI[直通堆栈寄存器ST浮空爛出+1T329FFF7EF寄存器值R?寄存器W浮空峨出+1T22AFFFE91ALU直通寄存器A标志位c,Z浮空减运算+1T12BFFFF57堆栈寄存器ST寄存器A浮空蹴出+114SUIiT丸ROTO2CCBFFFF浮空指令寄存器IRFC输出端出写入+115JE 2DT150C6FFFF存贮器值EM寄存器FCFC输出峨出+1写入TO51CEFFFF浮空指令寄存器IRFC输出蹴出写扎+12DMOVREAT114FFFB9FALU直通寄存器R?浮空赚出+1TO15CBFFFF浮空指令寄存器IRFC输出唏出写入+12EMOV丸#01T108C7FFF7存贮器值EM寄存器AFC输出端出+1+1TO09CBFFFF浮空指令寄存器IRFC输出峨出写入+130SUB扎#00T23CC7FFEF存贮器值EM寄存器WFC输出蹴出+1+1T13DFFFE91ALU直通寄存器A标志位c,Z浮空减运算+1TO3ECBFFFF浮空指令寄存器IRFC输出唏出写入+132MOV丸ROT1OCFFF7F7寄存器值曲寄存器A浮空端出+1TOODCBFFFF浮空指令寄存器IRFC输出峨出写入+133FLORT120FFFFB7ALU右移寄存器A浮空蹴出带迸位右移+1TO21CEFFFF浮空指令寄存器IRFC输出爛出+134MOVRO,AT114FFFB9FALI[直通寄存器R7浮空燭出+1TO15CBFFFF浮空指令寄存器IRFC输出端出写入+135MOV扎E2T1OCFFF7F7寄存器值曲寄存器A浮空峨出+1TOODCBFFFF浮空指令寄存器IRFC输出嘴出写几+136RULT124FFFFH7ALU左移寄存器A浮空爛出带进位左移lO助记符状态徵地址徵程序埶据输出数据打入地址输出运算器移位控制lifeFCTO25CEFFFF浮空指令寄存器IRFC输出嘴出写几+137MOVR2jAT114FFFB9FALU直通寄存器即浮空爛出+1TO15CBFFFF浮空指令寄存器IRFC输出燭出写入+138MOV扎R3T1OCFFF7F7寄存器值R?寄存器A浮空爛出+1TO0DCEFFFF浮空指令寄存器IRFC输出峨出写入+139SUBA.#01T23CC7FFEF存贮器值EM寄存器WFC输出嘴出+1+1T13DFFFE91ALU直通寄存器A标志f立c,Z浮空减运算+1TO3ECBFFFF浮空指令寄存器IRFC输出端出写入+13BMOVR3jAT114FFFB9FALI[直通寄存器R?浮空峨出+1TO15CEFFFF浮空指令寄存器IRFC输出峨出写入+13CJZ 44T154C6FFFF存贮器值EM寄存器FCFC输出赚出+1TO55CBFFFF浮空指令寄存器IRFC输出唏出写入+13EJfitF13T15CCBFFFF存贮器值EM寄存器FCFC输出端出+1写入TO5DCBFFFF浮空指令寄存器IRFC输出峨出写入+113MOV扎ElT1OCFFF7F7寄存器值R?寄存器A浮空蹴出+1TO0DCBFFFF浮空指令寄存器IRFC输出赚出写几+114SUIiTA.ROT428FFEF9FALI[直通堆栈寄存器ST浮空唏出+1T329FFF7EF寄存器值曲寄存器W浮空端出+1T22AFFFE91ALI[直通寄存器A标志位C,Z浮空减运算+1T12BFFFF57堆栈寄
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工厂安全保卫系统加固合同
- 网站文学创作合同
- 搬运服务合同范本模板格式化示例
- 2024广东省劳动合同范本简易版
- 2024中外货物买卖合同进出口买卖合同范文
- 中药行业报告:中药国企改革的三部曲和六要素
- 海员物资采购合同范例
- 旅游商品合同范例
- 买地居间合同范例
- 开连锁店需要合同范例
- (2024年)戴明环(PDCA循环)管理培训教材课件
- 2024年政府工作报告基础知识试题及答案(100题)
- JTG F80-1-2004 公路工程质量检验评定标准 第一册 土建工程
- 2023-2024苏教版小学五年级数学上册全册测评试卷(含答案)
- 小学英语就业能力展示
- 中医-艾灸治疼痛
- “安全风险分级管控”工作制度(2篇)
- 《艾滋病毒》课件
- 科普文化墙设计理念
- 管道保温计算公式
- 机械电子工程大一的职业生涯规划
评论
0/150
提交评论