复杂试验计算机组成及加法右移指令程序设计_第1页
复杂试验计算机组成及加法右移指令程序设计_第2页
复杂试验计算机组成及加法右移指令程序设计_第3页
复杂试验计算机组成及加法右移指令程序设计_第4页
复杂试验计算机组成及加法右移指令程序设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 沈阳理工大学课程设计专用纸 no19课程设计任务书学 院信息学院专 业计算机科学与技术学生姓名付磊班级学号 1003050424课程设计题目复杂试验计算机组成及加法,右移指令程序设计实践教学要求与任务:利用el-jy-ii型计算机组成原理实验仪提供的硬件资源,通过设计(包括整机结构设计、指令设计、微程序设计、微指令设计、调试程序设计等)、组装、调试三个步骤完成一台微程序控制的复杂实验计算机的设计。具体要求如下:1、 掌握实验计算机的整机结构。熟悉实验计算机的组装和调试方法。2、 设计如下几条机器指令的格式,指令格式可以采用单字长或双字长设计。算术加法运算指令:add rs,rd (功能rs

2、+ rd -> rd)输入输出指令:in #data,rd (功能data -> rd) out ri (功能ri的值 -> led输出)右移位运算指令:rrc rs,rd(功能rs的值带进位循环右移一位-> rd)转移指令: jmp addr (功能addr -> pc)3、 设计微指令的格式, 编写上述每条机器指令所对应的微程序,并上机调试。4、通过如下程序的编写调试,验收机器指令、微指令、微程序的设计结果。in #data,r0in #data r1in #data,r2add r0,r1add r1,r2rrc r2, r1out r0jmp 00h工作计

3、划与进度安排: 第19周:布置课程设计任务,查阅资料,分组设计,实验室组装与调试。 第20周:调试,验收,答辩,编写课程设计报告。指导教师: 2012年 月 日专业负责人: 2012年 月 日学院教学副院长: 2012年 月 日沈阳理工大学目 录1实验计算机的设计1 1.1 整机逻辑框图1 1.2指令系统的设计1 1.3微指令的格式设计及微操作控制部件的组成原理3 1.3.1微指令编码的格式设计31.3.2 微操作控制信号设计41.3.3 微程序顺序控制方式设计6 1.4微程序设计10 1.4.1 每条指令对应的微程序流程图101.4.2 每段微程序中各微指令的二进制编码、16进制编码131.

4、4.3 每段微程序在控存中的存放位置14 1.5 编写调试程序163 调试部分18 3.1调试前准备18 3.2程序调试过程19 3.3 结果分析204 心得体会205 参考文献201实验计算机的设计1.1 整机逻辑框图图 1.1逻辑框图1.2指令系统的设计 本实验共有14条基本指令,其中算术逻辑指令8条,访问内存指令和程序控制指令4条。输入输出指令2条。表8-1列出了各条指令的格式、汇编符号和指令功能。 表1.1 汇编符号指令的格式功 能mov rd,rs add rd,rs sub rd,rs 1000 rs rd 1001 rs rd 1010 rs rd rs rd rs+rd rdr

5、d-rs rdinc rdand rd,rsnot rdror rd 1011 rd rd 1100 rs rd 1101 rd rd 1110 rd rd rd+1 rdrsrd rdrd rd rd rol rd 1111 rd rd rd mov d,rd 00 10 00 rd d rd d mov rd, d 00 10 01 rd d d rd mov rd, d 00 00 01 rd d d rd jmp d 00 00 10 00 din rd, kinout disp,rd 0100 10 rd 0100 01 rd kin rd rd disp1.3微指令的格式设计及微操

6、作控制部件的组成原理1.3.1微指令编码的格式设计 1、 数据格式:本实验计算机采用定点补码表示法表示数据,字长为16位,其格式如下:1514 13. 0符号尾 数其中第16位为符号位,数值表示范围是:-32768x<32767。2、 指令格式:1)算术逻辑指令 设计9条单字长算术逻辑指令,寻址方式采用寄存器直接寻址。其格式如下:7 6 5 43 21 0op-codersrd其中op-code为操作码,rs为源寄存器,rd为目的寄存器,并规定:op-code011110001001101010111100110111101111指令clrmovaddsubincandnotrorrol

7、 rs或rd选定寄存器00ax01bx10cx 9条算术逻辑指令的名称、功能和具体格式见表8-2。 2)存储器访问及转移指令 存储器的访问有两种,即存数和取数。它们都使用助记符mov,但其操作码不同。转移指令只有一种,即无条件转移(jmp)。指令格式如下: 7 65 43 21 000mop-coderdd其中op-code为操作码,rd为寄存器。m为寻址模式,d随m的不同其定义也不相同,如下表所示:op-code000110指令说明写存储器读存储器转移指令寻址模式m有效地址ed定义说 明00e=(pc)+1立即数立即寻址10e=d直接地址直接寻址11e=100h +d直接地址扩展直接寻址 注

8、:扩展直接寻址用于面包板上扩展的存储器的寻址。3)i/o指令 输入(in)和输出(out)指令采用单字节指令,其格式如下:7 6 5 43 21 0op-codeaddrrd其中,当op-code=0100且addr=10时,从“数据输入电路”中的开关组输入数据;当op-code=0100且addr=01时,将数据送到“输出显示电路”中的数码管显示。本系统设计的微程序字长共24位,其控制位顺序如下:24232221201918171615 14 1312 11 109 8 7654321s3s2s1s0mcnwe1a1bf1f2f3ua5ua4ua3ua2ua1ua0、三个字段的编码方案如表8

9、2: f1字段f2字段f3字段15 14 13选择12 11 10选择9 8 7选择0 0 0ldri0 0 0rag0 0 0p10 0 1load0 0 1alu-g0 0 1ar0 1 0ldr20 1 0rcg0 1 0p30 1 1自定义0 1 1自定义0 1 1自定义1 0 0ldr11 0 0rbg1 0 0p21 0 1lar1 0 1pc-g1 0 1lpc1 1 0ldir1 1 0299-g1 1 0p 41 1 1无操作1 1 1无操作1 1 1无操作1.3.2 微操作控制信号设计 设计三个控制操作微程序:存储器读操作(mrd):拨动清零开关clr对地址、指令寄存器清零

10、后,指令译码输入ca1、ca2为“00”时,按“单步”键,可对ram连续读操作。 存储器写操作(mwe):拨动清零开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“10”时,按“单步”键,可对ram连续写操作。启动程序(run):拨动开关clr对地址、指令寄存器清零后,指令译码输入ca1、ca2为“11”时,按“单步”键,即可转入到第01号“取指”微指令,启动程序运行。注:ca1、ca2由控制总线的e4、e5给出。键盘操作方式时由监控程序直接对e4、e5赋值,无需接线。开关方式时可将e4、e5接至控制开关ca1、ca2,由开关来控制。表 1.2指令助记符控制信号取指微指令pco

11、,birc,b2,b3,ci,gip+1,ckmldadd rd,rsldr1,ldr2,lt1,lt2sub rd,rsldr1,ldr2,lt1,lt2and a,aiob,cc,cgrr,a,b,ct,ot,cn,m,s3,s2,s1,s0,x0,x1,ca,sa,sb,cpor a,aiob,cc,cgrr,a,b,ct,ot,cn,m,s3,s2,s1,s0,x0,x1,ca,sa,sb,cpxor a,aiob,cc,cgrr,a,b,ct,ot,cn,m,s3,s2,s1,s0,x0,x1,ca,sa,sb,cpnot aob,ct,ot,cn,m,s3,s2,s1,s0,x0,

12、x1,cadec aia,b,rr,ct,otcn,m,s3,s2,s1,s0x0,x1,caob,a,b,wrinc aia,b,rr,ct,otcn,m,s3,s2,s1,s0x0,x1,caob,a,b,wrmov ai,aja,b,rr,ct,ot,cn,m,s3,s2,s1,s0x0,x1,caob,a,b,wrnot aia,b,rr,ct,otcn,m,s3,s2,s1,s0x0,x1,caob,a,b,wr1.3.3 微程序顺序控制方式设计微程序控制部件组成原理三片eeprom2816构成24位控制存储器,两片8d触发器74ls273和一片4d触发器74ls175构成18位微命

13、令寄存器,三片3线-8线译码器74ls138对微命令进行译码。三片 2d触发器 74ls74构成6位微地址寄存器,它们带有清“0”端和预置端。在不判别测试的情况下,t2时刻打入微地址器的内容即为下一条微指令地址。当t4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。sa5sa0 为微控制器电路微地址锁存器的强置端输出。在该电路中有一组开关k1,k2,k3,k4,它们可以设成三种状态:写入,读出和运行。当处于“写入”状态时,可以根据微地址和微指令二进制代码写入到2816中。当处于“读出”状态时,可以将写入的二进制代码读出,从而可以对写入控存的

14、二进制代码的正确性进行验证。当处于“运行”状态时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图 1.2 程序控制部件组成微程序入口地址形成方法 由于每条机器指令都需要取指操作,所以将取指操作编制成一段公用微程序,通常安排在控存的0号或特定单元开始的一段控存空间内。 每一条机器指令对应着一段微程序,其入口就是初始微地址。首先由“取指令”微程序取出一条机器指令到ir中,然后根据机器指令操作码转换成该指令对应的微程序入口地址。这是一种多分支(或多路转移)的情况,常用三种方式形成微程序入口地址。 (1)一级功能转移 如果机器指令操作码字段的位数和位置固定,可以直接使操作码与入口地

15、址码的部分位相对应。例如,某计算机有16条机器指令,指令操作码用4位二进制数表示,分别为0000、0001、1111。现以字母q表示操作码,令微程序的入口地址为q11b,例如000011b为mov指令的入口地址,000111b为add指令的入口地址,001011b为sub指令的入口地址。 (2)二级功能转移 若各类指令的操作码的位数和位置不固定时,需采用分级转移,第一次先按指令类型标志转移,以区分出指令属于哪一类,如单操作数指令、双操作数指令等。在每一类机器指令中的操作码的位数和位置应当是固定的,第二次即可按操作码区分出具体是哪条指令,以便转移到相应微程序入口。 (3)通过pla电路实现功能转

16、移 可编程逻辑阵列pla实质上是一种译码-编码阵列,具有多个输入和多个输出,pla的输入是机器操作码和其他判别条件,pla的输出就是相应微程序的入口地址,这种方法对于变长度、变位置的操作码的处理更为有效而且转移速度较快。控存的下地址确定方法 (1)计数增量方式这种方式的特点是微程序控制部件中的微地址中的微地址产生线路主要是微地址计数器mpc。mpc的初值由微程序首址形成线路根据指令操作码编码形成。在微程序执行过程中该计数器增量计数,产生下一条微指令地址。这使得微指令格式中可以不设置“下地址场”。缩短了微指令长度,也使微程序控制部件结构较简单。但微程序必须存放在控存若干连续单元中。 微操作控制信

17、号微指令寄存器mir 控存cm 微程序计数器mpc 微程序首址形成电路微指令令微地址微程序首址形成器 指令操作码图 1.3 计数增量方式 (2)断定方式 微指令中设有“下地址场”,它指出下条微指令的地址,这使一条指令的微程序中的微指令在控存中不一定要连续存放。在微程序执行过程中,微程序控制部件中的微地址形成电路直接接受微指令下地址场信息来产生下条微指令地址,微程序的首址也由此微地址形成线路根据指令操作码产生。 图1.4 断定方式控制场 下地址场 微指令寄存器mir 控存cm 微地址形成电路指令操作码状态条件微地址微指令 1.4微程序设计 1.4.1 每条指令对应的微程序流程图 控制开关 00

18、p(4)测试 mwe(01) mrd(00) run(11) pc ar,pc+1 11 pc ar,pc+1 10 13 (d_input) d_bus lt1 14 ram d_bus lt1 12 01 lt1 ram 74 lt1 led 73 图1.5 微程序流程图图1.6 微程序流程图 表1.3 据本实验程序流程图设计的二进制微代码表1.4.2 每段微程序中各微指令的二进制编码、16进制编码微地址s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua00000000000000001111111100010000000010000000001011011010000

19、10000010000000010 110111111111101000110000000010 101111111100101000111000000010 101111 111100101001000000000000 101 101 101001010001001000000000 101101 101001100001010000000010 100111111111011001011000000000111111111000001001100000000011 100111111111100010000000000000101101 101100101010010000000000

20、101101101000111010011000000000 101 101 101000110010100000000000111111100010101010101000000101111 010111000001010111000000011 000111111000001011000000000000 000 000111000001011001000000000100 000111101010011010000000000 100 000111101100011011000000000 100 000111110010011100000000000 100 0001111100110

21、11101000000000 100 000111110110011110001100000 111 000111110111011111001100000 000 000111111001100000000000110111100111000001100001000000010 000111111000001100010000000010 001 111 101000001100101000000000111 111 1001000001010100000000000100101111010111010111001010000000011110000011011000000000000101

22、00111101101101101011000000000 001111000001110010000000000000001111000001110011000000000010010111110101110101101110000000001111000001110110000011000000001111000001110111001000000111110111111000111000000000000000110111000001111001000100000111110111111010111010000000000000110111000001111011000001101111

23、001111001000111100111111110111001111001001111101000000010110111000010000表1.4 二进制代码表1.4.3 每段微程序在控存中的存放位置微地址(八进制)微地址(二进制)微代码(十六进制)00000000007f8801000001005b4202000010016ffd03000011014fc404000100015f2005000101015fc606000110014fc707000111015f2010001000005b4a11001001005b4c12001010014ffc11400

24、110001cffce160011100025cf170011119453e520010000005b4321010001005b4522010010005b4d23010011005b6624010100018fc12501010102f5c126010110007fd6270101113c03c1300110000001c1310110010041ea320110100021ec330110110041f2340111000041f3350111010041f6360111103001f7370111113001f940100000010f/p>

25、79c142100010011f4143100011007ea444100100007fc14510010184492046100110014fe747100111002be850101009459e951101001944920521010100025eb531010119403fe541011000049ed551011010449ee561011100c49ef571011110049f0601100000c7f31611100019403c1621100100003c1631100110025f56411010004134165110101b803c1661101100c03c1671

26、10111287df870111000000dc171111001187dfa72111010000d3c874111100ff73c975111101016e10761111100041c11.5 编写调试程序设计如下几条机器指令的格式,指令格式可以采用单字长或双字长设计。算术加法运算指令:add rs,rd (功能rs + rd -> rd)输入输出指令:in #data,rd (功能data -> rd)out ri (功能ri的值 -> led输出)右移位运算指令:rrc rs,rd(功能rs的值带进位循环右移一位-> rd)转移指令:

27、 jmp addr (功能addr -> pc)通过如下程序的编写调试,验收机器指令、微指令、微程序的设计结果。in #data,r0in #data r1in #data,r2add r0,r1add r1,r2rrc r2, r1out r0jmp 00h实验程序:地址 指令 助记符00000001 01000100 in r000000010 01000101 in r100000011 01000110 in r200000100 10010001 adc r0,r100000101 10010010 adc r1,r200000110 11101000 rrc r2,r1000

28、00111 01011010 out00001000 00001100 jmp00001001 00100000 hact2 设计组装实验计算机接线表 图2.1 实验接线表3 调试部分3.1调试前准备1 按照实验指导说明书连接硬件系统 2 启动实验软件,打开实验课题菜单,选中实验课题打开实验课题参数对话窗口:微指令操作: 1)写:在编辑框中输入实验指导书中的微指令程序(格式:两位八进制微地址+空格+六位十六进制微代码),或直接打开随机附带的程序ex8.msm,将实验箱上的k4k3k2k1拨至“0010”写状态,然后按"写入"按钮,微程序写入控制存储器电路; 2)读:将实验箱

29、上的k4k3k2k1拨至“0100”读状态,在“读出微地址”栏中填入两位八进制地址,按"读出"按钮,则相应的微代码显示在“读出微代码”栏中; 3)保存:按"保存"按钮,微程序代码保存在一给定文件(*.msm)中; 4)打开:按"打开"按钮,打开已有的微程序文件,并显示在编辑框中 机器指令操作: 1)写:在编辑框中输入实验指导书中机器指令程序(格式:两位十六进制地址+空格+2位或 4位十六进制代码),或直接打开随机附带的程序ex8.asm,将实验箱上的k4k3k2k1拨至 “0101”运行状态,拨动“clr”开关对地址和微地址清零,然后按"写入"按钮,机器指令写 入存储器电路;注:对于8位机,十六进制代码为2位;对于16位机,十六进制代码可以是2位,也可以是4位。 2)读:将实验箱上的k4k3k2k1拨至“0101”运行状态,在“读出指令地址”栏中填入两位十六进制地址,拨动“clr”开关对地址和微地址清零,然后按"读出"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论