ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:233.07KB ,
资源ID:863941      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-863941.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(设计基本模型机的指令系统实现异或乘除等程序.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

设计基本模型机的指令系统实现异或乘除等程序.doc

1、安徽理工大学课程设计(论文)任务书 计算机科学与工程 院系 硬件 教研室学 号学生姓名专业(班级)设计题目设计基本模型机的指令系统实现异或,乘除等程序设计技术参数计算机组成原理教学实验仪一台,排线若干;PC机一台DJ-CPT816组成原理实验软件模型机的指令系统,微程序,微指令,程序设计要求设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令)在已编写的指令系统上设计程序按时提交设计报告工作量 论文不少于15页,附带必要的图表工作计划设计课一:分析设计要求,制定设计计划,完成指令系统设计,并在CPTH实验软件中形成.mic文件设计课二:分析设计编写程序设计课

2、三:在微机和试验仪的支持下,调入指令系统和程序,运行,测试,完成系统的设计设计课四:提交设计报告参考资料1李敬兆. 8086/8088和基于ARM核汇编语言程序设计 2清华大学出版社.计算机组成原理与设计实验指导3白中英.计算机组成原理指导教师签字教研室主任签字 2013年 1月 9 日 指导教师评语:成绩: 指导教师: 年 月 日摘要在飞速发展的科技社会中,计算机被应用到各行各业,各个领域中。人们渐渐地步入自动化、智能化的生活阶段。本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,硬件设备自拟,编写指令的

3、应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了各指令的格式以及编码的设计,实现了各机器指令微代码,设计基本模型机的指令系统(包括逻辑与,逻辑或,算术加,减运算,输入,输出,转移,传送指令),形成具有一定功能的完整的应用程序。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。这一课题的实现不仅使我们对各种微指令有了熟练的掌握,更对有关知识的深入

4、学习打下基础。关键词:指令系统,微指令,机器指令 目录目录41.系统分析51.1 设计背景51.2 模型机寻址方式71.3 设计目标72.系统设计82.1 模型机的指令设计82.2 模型机的微指令设计92.3 程序设计131.主体程序132.阶乘程序143.系统实现153.1 程序编写153.2 程序分析193.3 调试结果214.总结224.1 设计体会224.2 系统改进231.系统分析1.1 设计背景通过计算机组成原理理论课和几次实验的学习,尝试设计八类机器指令,并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调试指令和模型机使其在微程序的控制下自动产生各部件单元的正常工

5、作控制信号。本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。简言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,

6、一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。24位控制位分别介绍如下: XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。 EMWR:程序存储器EM写信号 EMRD:程序存储器EM读信号 PCOE:将程序计数器PC的值送到地址总线ABUS上EMEN:将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUSIREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPCEINT:中断返回时清除中断响应和中断请求标志,便于下次中断。ELP:PC打入允许,与指令寄存

7、器的IR2.,IR3位结合,控制程序跳转。MAREN:将数据总线DBUS上数据打入地址寄存器MARMAROE:将地址寄存器MAR的值送到地址总线ABUS上OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT里STEN:将数据总线DBUS上数据存到堆栈寄存器里RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位FEN:将标志位存入ALU内部的标志寄存器X2,X1,X0三位组合来译码选择将数据送到DBUS上的哪个寄存器,见表1WEN:将数据总线DB

8、US的值打入工作寄存器W中AEN:将数据总线DBUS的值打入累加器A中S2,S1,S0三位组合决定ALU做何种运算,见表2表1X2 X1 X0输出寄存器0 0 0IN_OE 外部输入门0 0 1IA_OE 中断向量0 1 0ST_OE 堆栈寄存器0 1 1PC_OE PC寄存器1 0 0D_OE 直通门1 0 1R_OE 右移门1 1 0L_OE 左移门1 1 1没有输出表2S2 S1 S0功能0 0 0A+W 加0 0 1A-W 减0 1 0A|W 或0 1 1A & W 与1 0 0A+W+C 带进位加1 0 1A-W-C 带进位减1 1 0A A取反1 1 1A 输出A1.2 模型机寻址

9、方式模型机的寻址方式分五种:累加器寻址:操作数为累加器A,例如“CPL A”是将累加器A 值取反,还有些指令是隐含寻址累加器A,例如“OUT”是将累加器A的值输出到输出端口寄存器OUT。寄存器寻址:参与运算的数据在R0-R3 的寄存器中,例如 “ADD A,R0”指令是将寄存器R0 的值加上累加器A的值,再存入累加器A中。寄存器间接寻址:参与运算的数据在存储器EM 中,数据的地址在寄存器R0-R3中,如 “MOV A,R1”指令是将寄存器R1 的值做为地址,把存储器EM 中该地址的内容送入累加器A中。存储器直接寻址:参与运算的数据在存储器EM 中,数据的地址为指令的操作数。例如“AND A,4

10、0H”指令是将存储器EM 中40H 单元的数据与累加器A的值做逻辑与运算,结果存入累加器A。立即数寻址:参与运算的数据为指令的操作数。例如 “SUB A,#10H”是从累加器A中减去立即数10H,结果存入累加器A。1.3 设计目标本课程设计要求实现机器指令:YD(传送),IN(输入), YU(逻辑与),HUO(逻辑或),OUT(输出),ADD(算术加),SUB(算术减),JC,JZ,JMP(转移)和FEI (逻辑非)。要包括直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。最后要在设计的指令系统基础上,编写程序实现异或,乘除,平方。2.系统设计2.1 模型机的指令设计根据设计要求,设计出

11、的指令要包括传送,逻辑与,逻辑或,算术加,减运算,输入,输出,转移这八种指令,且要运用直接寻址,立即数寻址,寄存器寻址,间接寻址四种寻址方式。由此设计出指令表如表3:表3 指令表助记符机器码功能_FETCH_000000xxYD A,#*000001xx YD A,R?000010xxYD A,R?000011xx *YD A,*000100xx #*ADD A,#*000101xx ADD A,R?000110xxADD A,R?000111xx *ADD A,*001000xx #*SUB A,#*001001xx SUB A,R?001010xxSUB A,R?001011xxSUB A

12、,*001100xxYU A,#*001101xx *YU A,R?001110xx #*YU A,R?001111xxYU A,*01000xxHUO A,#*010001xx *HUO A,R?010010xx #*HUO A,R?010011xxHUO A,*010100xxFEI A010101xx *YD R?A010110xx #*IN010111xxK23-K16输入到AOUT011000xx #*OUT输出AZY A011001xx *YY A011010xx *JUMP *011011xx *JC *011100xxCF=1则*PCJZ *011101xxZF=1则*PCJU

13、MP A011110xx2.2 模型机的微指令设计 (1)微指令的24位控制位如下: XRD EMWR EMRD PCOE EMEN IREN EINT ELP MAREN MARDE OUTEN STEN RRD RWR CN FEN X2 X1 X0 WEN AEN S2 S1 S0(2)设计出的微指令集如表4:表4 微指令集表助记符 状态微地址微程序_FETCH_T000CBFFFF01FFFFFF02FFFFFF03FFFFFFYD A,#*T104C7FFF7T005CBFFFF06FFFFFF07FFFFFFYD A,R?T108FFF7F7T009CBFFFF0AFFFFFF0B

14、FFFFFFYD A,R?T20CFF77FFT10DD7BFF7T00ECBFFFF0FFFFFFFYD A,*T210C77FFFT111D7BFF7T012CBFFFF13FFFFFFADD A,R?T224FFF7EFT125FFFE90T026CBFFFF27FFFFFFADD A,R?T328FF77FFT229D7BFEFT12AFFFE90T02BCBFFFFADD A,*T32CC77FFFT22DD7BFEFT12EFFFE90T02FCBFFFFSUB A,#*T230C7FFEFT131FFFE91T032CBFFFF33FFFFFFSUB A,R?T244FFF7EF

15、T145FFFE91T046CBFFFF47FFFFFFSUB A,R?T348FF77FFT249D7BFEFT14AFFFE91T04BCBFFFFSUB A,*T34CC77FFFT24DD7BFEFT14EFFFE91T04FCBFFFFYU A,#*T250FF77FFT151FFFE93T052CBFFFF53FFFFFFYU A,R?T254FF77FFT155FFFE93T056CBFFFF57CBFFFFYU A,*T358C77FFFT269D7BFEFT15AFFFE93T05BCBFFFFHUO A,#*T25CC7FFEFT15DFFFE92T05ECBFFFF5FF

16、FFFFFHUO A,R?T260FFF7EFT161FFFE92T062CBFFFF63FFFFFFHUO A,R?T364FF77FFT265D7BFEFT166FFFE92T067CBFFFFHUO A,*T368C7FFFFT269D7BFEFT16AFFFE92T06BCBFFFFFEI AT26CC7FFF7T16DFFFE96TO6ECBFFFF6FFFFFFFYD R?,AT170FFFB9FT071CBFFFF72FFFFFF73FFFFFFINT274FFFF1FT175FFFF17T076CBFFFF77FFFFFFOUTT178FFDF9FT079CBFFFF7AFFF

17、FFF7BFFFFFFZY AT17CFFFED7T07DCBFFFF7EFFFFFF7FFFFFFFYY AT180FFFEB7T081CBFFFF82FFFFFF83FFFFFFJUMP *T184C6FFFFT085CBFFFF86FFFFFF87FFFFFFJC *T188C6FFFFT089CBFFFF8AFFFFFF8BFFFFFFJZ *T18CC6FFFFT08DCBFFFF8EFFFFFF8FFFFFFFJUMP AT190C6FFFFT091CBFFFF92FFFFFF93FFFFFF2.3 程序设计1.主体程序程序设计思路:用寄存器A来保存要跳到的地址,JUMP A跳到该

18、功能的入口,在从入口跳入该功能函数。则有程序流程图如图5:输入一个数,存入A,选择功能A加上数4,后进行跳转到地址A乘法(A=06)除法(A=08)求余(A=0A)比较大小(A=0C)阶乘(A=0E)平方(A=0F)寄存器A,R0,R1,R2,R3复位A=04图5 程序流程图2.阶乘程序输入一个数,保存到R0将数减1将R1中数拿出减1,并保存到R1拿出R2,与R0相加,并保存到R2取出R2中数,保存到R0中,并将R2复位取出R3中的数保存到R1,R3取出R2中数,输出若A大等于0若A大等于0若A小于0若A小于03.系统实现3.1 程序编写 按照系统分析中得到的指令集,在DJ-CPT816实验软

19、件中新建指令系统,生成.mac文件和.mic文件。在DJ-CPT816实验软件中新建.asm文件,输入程序: LOOP:INADD A,#04HJUMP AJUMP LOOPJUMP LOOP1JUMP LOOP2JUMP LOOP3JUMP LOOP4JUMP LOOP5JUMP LOOP6LOOP1:INYD R0,AYD A,#00HYD R1,AINYD R2,AQ1:YD A,R2SUB A,#01HYD R2,AJC S1YD A,R1ADD A,R0YD R1,AJUMP Q1S1:YD A,R1OUTYD A,#00YD R0,AYD R1,AYD R2,AYD R3,AJUM

20、P LOOPLOOP2:INYD R0,AINYD R1,AQ2:YD A,R0SUB A,R1JC S2YD R0,AYD A,R2ADD A,#01YD R2,AJUMP Q2S2:YD A,R2OUTYD A,#00HYD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOPLOOP3:INYD R0,AINYD R1,AQ3:YD A,R0SUB A,R1JC S3YD R0,AYD A,R2ADD A,#01YD R2,AJUMP Q3S3:YD A,R0OUTYD A,#00HYD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOPLOOP4:IN

21、YD R0,AINYD R1,AYD A,R0SUB A,R1JC S4JUMP Q4S4:YD A,R1YD R3,AYD A,#00HYD R0,AYD R1,AYD R2,AJUMP LOOPQ4:YD A,R0OUTYD A,#00HYD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOPLOOP5:IN YD R0,ASUB A,#01HYD R3,AYD R1,AQ5:YD A,R1SUB A,#01HJC S5YD R1,AYD A,R2ADD A,R0YD R2,AJUMP Q5S5:YD A,R3SUB A,#01HJZ L5YD R1,AYD R3,AYD

22、 A,R2YD R0,AYD A,#00HYD R2,AJUMP Q5L5:YD A,R2OUTYD A,#00HYD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOPLOOP6:INYD RO,AYD R1,AS6:YD A,R1SUB A,#01JC Q6YD R1,AYD A,R2ADD A,R0YD R2,AJUMP S6Q6:YD A,R2OUTYD A,#00YD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOP3.2 程序分析LOOP:IN输入要选择的功能ADD A,#04H输入的数加上4,用于跳转到跳转指令JUMP AJUMP LOOP输

23、入0时,跳转到此指令。这里跳转到程序开头JUMP LOOP1输入2时,跳转到此指令。这里跳转到乘法功能JUMP LOOP2输入4时,跳转到此指令。这里跳转到除法功能JUMP LOOP3输入6时,跳转到此指令。这里跳转到求余功能JUMP LOOP4输入8时,跳转到此指令。这里跳转到比较大小功能JUMP LOOP5输入10时,跳转到此指令。这里跳转到阶乘功能JUMP LOOP6输入12时,跳转到此指令。这里跳转到平方功能LOOP4: 比较大小功能INYD R0,A将第一个数传入R0INYD R1,A将第二个数存入R1YD A,R0拿出R0SUB A,R1用R0-R1JC S4如果求得的结果小于0,

24、跳到S4JUMP Q4跳到Q4S4:输出R1中存的数YD A,R1YD R3,AYD A,#00HYD R0,AYD R1,AYD R2,AJUMP LOOPQ4:输出R0中存的数YD A,R0OUTYD A,#00H复位寄存器YD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOPLOOP5:阶乘功能IN 输入要求阶乘的数YD R0,A把这个数存入R0SUB A,#01H这个数减1YD R3,A存入R3中YD R1,A再存入R1中Q5:开始用累加法 做乘法 R0xR1YD A,R1SUB A,#01HJC S5YD R1,AYD A,R2ADD A,R0YD R2,AJUM

25、P Q5S5:乘法结束后 ,将成出来的结果存入R0YD A,R3SUB A,#01H取出R3中数,减一。JZ L5当R3 减1为0时 跳出循环YD R1,A将数存入R1,R3YD R3,AYD A,R2将成出来的结果覆盖到R0中YD R0,AYD A,#00HYD R2,A将R2复位JUMP Q5跳到下一次,开始乘法L5:YD A,R2OUTYD A,#00HYD R0,AYD R1,AYD R2,AYD R3,AJUMP LOOP3.3 调试结果把计算机与试验仪器相连接,打开试验仪器,导入新建的指令系统,编译下载该asm文件,装载正确后单步运行,检查运行结果是否符合要求。实验结果:1 第一次

26、置K23K16 为00001010(选择阶乘功能),第二次置K23K16为00000100(求4的阶乘),OUT中输出的182 第一次K23K16 为00001000(选择比较大小功能),第二次置K23K16为00000101(输入5),第三次置K23K16为00001100(输入12),OUT中输出0C4.总结4.1 设计体会经过将近一个月的的计算机组成原理课程设计,让我们体会到了苦尽甘来的滋味,这次课程设计中,我担任了我们组的组长,在实验起初,我们一起完成了指令系统,并完成了每条指令的测试。然后我给每个组员分配了不同的程序功能,最后通过一个选择系统将这些功能汇总在了一起。在设计中,我主要完

27、成了一个选择系统和阶乘功能。这次计算机组成原理课程设计使我的能力得到了很大的提高,此外使我对上学期所学的计算机组成原理的知识得到了提高,加深了对计算机工作原理的认识。我也体会到了作为一个大学生,要想学有所得,就得学习主动,不要什么都希望别人亲自传授,面对问题要自己去努力解决,多问问身边的同学,多动手查查,多上网找找,所以要想成功就得事事做到细心,耐心,恒心。这次的课程设计使我懂得了理论与实际相结合是很非常重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。当然,有时用错了方法,总是实现不了。同

28、时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。通过这次的课程设计,让我更加了解到计算机组成原理的重要性。以及它对我们专业的发展发挥的作用。对我们而言,知识上的收获很重要,但精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!同时在做课程设计时要能够从多方面去考虑,去研究,用多种方法去实现要求。此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,这些都让

29、我受益非浅,今后的制作应该能够更轻松,自己也都能够解决并高质量的完成项目。4.2 系统改进本程序在设计之初,还设计了第二次输入的数再与上一次的结果做运算,也就是把每次求出的结果保存在R3中,每次不复位R3寄存器。但由于时间原因,在实现程序功能时,遇到了很多问题,使得最后我们放弃了第二次运算的功能。在程序中运算都没有考虑进位,使得程序的运算范围很小,很容易运算溢出,在这方面有需要改进。参考文献1计算机组成原理实验指导书. 王诚,宋佳兴,董长洪编著. 清华大学出版社,2002.2计算机组成原理学习指导与训练 . 旷海兰等编著. 中国水利水电出版社, 2004.3计算机原理与设计. 宋焕章 张春元 王保恒. 长沙:国防科技大学出版社, 2000.4 白中英计算机组成原理(第二版)北京:科学出版社,1998

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922