计算机组成原理课程设计(同或运算、比较两个数大小).doc_第1页
计算机组成原理课程设计(同或运算、比较两个数大小).doc_第2页
计算机组成原理课程设计(同或运算、比较两个数大小).doc_第3页
计算机组成原理课程设计(同或运算、比较两个数大小).doc_第4页
计算机组成原理课程设计(同或运算、比较两个数大小).doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

课程设计说明书题目: 设计指令系统实现同或运算、比较两个数大小 院 系: 计算机科学与工程学院 专业班级: 计算机课10-* 学 号: 2010* 学生姓名: 安理工作室 指导教师: 顾荣* 2013年 01 月 09 日课程设计(论文)任务书计算机科学与工程学院 计算机科学与技术系学 号学生姓名专业(班级)设计题目设计指令系统实现同或运算、比较两个数大小设计技术参数1.本系统采用DJ-CPTH超强型计算机组成原理教学实验系统搭建电路图,在实验箱上实现指令系统;2.利用软件工程中的可行性研究以及分析方法,进行系统分析。设计要求1.在基本模型机的基础上构建新的指令系统,这些指令的助记符不得与指导书上相同;2.根据所选题目使用相应的寻址方式;3.利用新构建的指令系统,实现同或运算和比较两数大小。工作量1.课程设计说明书1000字;2.画出流程图,编写微指令代码和程序。工作计划1.分析设计要求,制定设计计划,完成指令系统设计,并在CPTH实验软件中形成.mic文件;2.分析设计编写程序;3.在微机和实验仪的支持下,调入指令系统和程序,运行,测试,完成系统的设计;4.提交设计报告。参考资料1李敬兆.8086/8088和基于ARM核汇编语言程序设计.合肥:中国科学技术大学出版社,20082蒋本珊.计算机组成原理.北京:清华大学出版社,2008指导教师签字系主任签字 2013年01月09日 学号: 姓名: 专业班级: 计算机10-5 设计题目: 设计指令系统实现同或运算、比较两个数大小 指导教师评语:成绩: 指导教师: 年 月 日课程设计(论文)成绩摘要计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程设计,编写指令的应用程序,用微程序控制器实现一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了相关指令的格式以及编码的设计,实现了机器指令微代码,完成具有一定功能的程序。同或运算和比较两个数大小是在基本模型机的基础上构建一组能实现输入、输出、减、逻辑与、逻辑或、逻辑非、跳转这7个功能的指令,这些指令的助记符不得与指导书上相同。指令包括立即寻址和寄存器寻址两种寻址方式。利用新构建的指令系统编程,实现同或运算和比较两数大小的功能。本次课程设计分为以下几各面:l 系统分析,对系统设计的背景和设计目标做了一个简单的介绍;l 从模型机的指令系统入手,对整个系统的指令系统进行设计;l 使用设计好的指令系统实现同或运算和比较两个数的大小关系;l 最后还进行了对本次设计的总结和对设计的系统的改进工作提出了一些建议;本次课程设计偏重于对计算机工作的原理和计算机微机的指令系统学习和深入的了解。对以后的学习打下一个好的基础。关键词:指令,计算机组成原理,指令系统,模型机,同或运算,比较两个数大小目录1系统分析11.1 设计背景11.2 设计目标22系统设计32.1 模型机的指令系统设计32.2 模型机的微指令设计32.3同或运算的设计52.4比较两数大小的设计53系统实现73.1同或运算的实现73.1.1实验步骤73.1.2程序释义103.2比较两数大小的实现113.2.1实验步骤113.2.2程序释义164总结184.1设计体会184.2系统改进18参考文献19II计算机组成原理课程设计说明书1系统分析1.1 设计背景一台计算机所能执行的各种指令集合称为指令系统或指令集。一台特定的计算机只能执行自己指令系统中的指令。因此,指令系统就是计算机的机器语言。指令系统表征着计算机的基本功能和使用属性,它是计算机系统设计中的核心问题。指令系统的设计主要括指令功能、操作类型的设计以及寻址方式和指令格式的设计。计算机的性能与它所设置的指令系统有很大的关系,指令系统反映了计算机的主要属性,而指令系统的设置又与机器的硬件结构密切相关。指令是计算机执行某种操作的命令,而指令系统是一台计算机中所有机器指令的集合。通常性能较好的计算机都设置有功能齐全、通用性强、指令丰富的指令系统,而指令功能的实现需要复杂的硬件结构来支持。 本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0到2个操作数,指令码的最低两位用来选择R0-R3寄存器。在微程序控制方式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的读写。简而言之,这次设计,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。本设计是在DJ-CPT816计算机组成原理实验仪和仿真软件上进行的。24位控制位分别介绍如下:XRD:外部设备读信号,当给出个外设的地址后,输出此信号,从指定外设读数据。EMWR:程序存储器EM写信号。EMRD:程序存储器EM读信号。PCOE:将程序计数器PC的值送到地址总线ABUS上。EMEN:将程序存储器EM与数据总线DBUS接通,有EMWR和EMRD决定是将DBUS数据写入EM中,还是从EM读出数据到DBUS。IREN:将程序存储器EM独处的数据打入指令寄存器IR和微指令计数器uPC。EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。ELP:PC打入允许,与指令寄存器的IR2,IR3位结合,控制程序跳转。MAREN:将数据总线DBUS上数据打入地址寄存器MAR。MAROE:将地址寄存器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上的哪个寄存器,如表1所示。WEN:将数据总线DBUS的值打入工作寄存器W中。AEN:将数据总线DBUS的值打入累加器A中。S2,S1,S0三位组合决定ALU做何种运算,如表2所示:表1 选择具体的寄存器表2 ALU运算1.2 设计目标本次课程设计要求实现的机器指令如下:(1)INPUT:表示输入指令;(2)OUTPUT:表示输出指令;(3)JIAN:表示减法指令;(4)CHS:表示传送指令;(5)YU:表示与运算指令;(6)HUO:表示或运算指令;(7)FEI:表示非运算指令;(8)TZH_C:表示有进位或有借位时的跳转(转移)指令;(9)TZH_Z:表示结果为零时的跳转(转移)指令;(10)TZH_N:表示无条件跳转(转移)指令。在实现同或运算和比较两个数大小的功能时,包含了立即寻址和寄存器寻址两种寻址方式。最后要在设计的指令系统基础上,编写程序实现同或运算和比较两个数大小的功能。2系统设计2.1 模型机的指令系统设计根据设计要求,设计出的指令应包括输入、输出、减、逻辑与、逻辑或、逻辑非、跳转(转)移这7个功能的指令,且要使用立即寻址和寄存器寻址两种寻址方式。根据以上要求设计出的指令集如表3所示。表3 指令集指令类型助记符机器码功能取指_FETCH_000000xx 00-03IRPC输入INPUT000001xx 04-07输入A输出OUTPUT000010xx 08-0B输出减运算JIAN A,R?000011xx 0C-OFA-R?A传送CHS A,R?000100xx 10-13R?ACHS R?,A000101xx 14-17AR?CHS A,#*000110xx 18-1B *A逻辑与YU A,R?000111xx 1C-1FA&R?A进位或借位跳转(转移)TZH_C *001000xx 20-23 *跳转到*全零跳转(转移)TZH_Z *001001xx 24-27 *跳转到*逻辑或HUO A,R?001010xx 28-2B *A|R?A无条件跳转(转移)TZH_N *001011xx 2C-2F *跳转到*逻辑非FEI A001100xx 30-33A2.2 模型机的微指令设计 微指令集如表4所示。表4 微指令集助记符状态微地址微程序_FETCH_T000CBFFFF01FFFFFF02FFFFFF03FFFFFFINPUTT104FFFF17T005CBFFFF06FFFFFF07FFFFFFOUTPUTT108FFDF9FT009CBFFFF0AFFFFFF0BFFFFFFJIAN A,R?T20CFFF7EFT10DFFFE91T00ECBFFFF0FFFFFFFCHS A,R?T110FFF7F7T011CBFFFF12FFFFFF13FFFFFFCHS R?,AT114FFFB9FT015CBFFFF16FFFFFF17FFFFFFCHS A,#*T118C7FFF7T019CBFFFF1AFFFFFF1BFFFFFFYU A,R?T21CFFF7EFT11DFFFE93T01ECBFFFF1FFFFFFFTZH_C *T120C6FFFFT021CBFFFF22CBFFFF23FFFFFFTZH_Z *T124C6FFFFT025CBFFFF26FFFFFF27FFFFFFHUO A,R?T128FFF7EFT029FFFE922ACBFFFF2BFFFFFFTZH_N *T12CC6FFFFT02DCBFFFF2EFFFFFF2FFFFFFFFEI AT130FFFE96T031CBFFFF32FFFFFF33FFFFFF2.3同或运算的设计设计思路:根据同或运算的表达式AB=AB+可知,输入两个数A和B后,分别先将A和B做逻辑与运算得到一个结果,然后再分别对A和B取反后再做逻辑与运算得到一个结果,最后再将两个结果做逻辑或运算即能得到同或运算的结果。程序流程图如图1所示。开始结束输入两个数A和BA和B做逻辑与运算,得到一个结果A和B分别求反后再做逻辑与运算,得到一个结果两个结果做逻辑或运算输出同或运算的结果图1 同或运算程序流程图2.4比较两数大小的设计程序设计思路:将输入的第二个数减第一个数,根据标志位比较两数的大小。可以先事先规定:若输入的第一个数比第二个数小,则输出结果是1,转换为十六进制数就是01H;若输入的第一个数和第二个数相等,则结果输出是0,转换为十六进制数就是00H;若输入的第一个数比第二个数大,则结果是-1,由于负数在计算机中已补码形式表示,所以转换为十六进制数就是FFH。程序流程图如图2所示。开始结束输入第一个数A输入第二个数BB-A判断标志位输出01H输出FFH输出00H零标志位有效进位(借位)标志位有效进位(借位)标志位无效图2 比较两个数的大小程序流程图3系统实现3.1同或运算的实现3.1.1实验步骤(1)按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,保存为TH.mac文件,指令系统建立并保存后会生成TH.mic文件。(2)在DJ-CPT816实验软件中新建名为TH.asm文件,输入以下程序:INPUTCHS R0,AINPUTCHS R1,AYU A,R0CHS R2,ACHS A,R0FEI ACHS R3,ACHS A,R1FEI AYU A,R3HUO A,R2OUTPUT(3)将程序保存为TH.asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,如图3所示。图3 调试窗口(4)实验测试第1组测试数据:第一次置K23K16为10000001,即输入的数据是81H,如图4所示。图4 第一次置K23K16为10000001第二次置K23K16为10000001,即输入的数据是81H,如图5所示。图5 第二次置K23K16为10000001输出的结果是FF,如图6所示。图6 输出结果FF第2组测试数据:第一次置K23K16为10011001,即输入的数据是99H,如图7所示。图7 第一次置K23K16为10011001第二次置K23K16为11010011,即输入的数据是D3H,如图8所示。图8 第二次置K23K16为11010011输出的结果是B5,如图9所示。图9 输出结果B53.1.2程序释义_FETCH_;程序开始执行一条取指的微指令,读入程序第一条指令INPUT;将第一个数输入ACHS R0,A;将A中的内容传送到R0中INPUT;将第二个数输入ACHS R1,A;将A中的内容传送到R1中YU A,R0;将第一个数与第二个数做逻辑与运算并把结果保存到A中CHS R2,A;将A中的内容传送到R2中CHS A,R0;将R0中的内容传送到A中FEI A;将A中的内容做逻辑非运算并把结果保存到A中CHS R3,A;将A中的内容传送到R3中保存CHS A,R1;将R1中的内容传送到A中FEI A;将A中的内容做逻辑非运算并把结果保存到A中YU A,R3;将A中的内容和R3中的内容做逻辑与运算并把结果保存到A中HUO A,R2;将A中的内容和R2中的内容做逻辑或运算并把结果保存到A中OUTPUT;输出结果3.2比较两数大小的实现3.2.1实验步骤(1)按照系统分析中得到的指令集,在DJ-CPT816实验软件中新建指令系统,保存为DX.mac文件,指令系统建立并保存后会生成DX.mic文件。(2)在DJ-CPT816实验软件中新建名为DX.asm文件,输入以下程序:INPUTCHS R0,AINPUTJIAN A,R0TZH_C LOOP2TZH_Z LOOP1CHS A,#1HOUTPUTTZH_N 12HLOOP1:OUTPUTTZH_N 12HLOOP2:CHS A,#OFFHOUTPUT(3)将程序保存为DX.asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,如图10所示。图10 调试窗口(4)实验测试第1组测试数据:第一次置K23K16为00000001,即输入的数据是01H,如图11所示。图11 第一次置K23K16为00000001第二次置K23K16为00000010,即输入的数据是02H,如图12所示。图12 第二次置K23K16为00000010输出的结果是01,如图13所示。图13 输出结果01第2组测试数据:第一次置K23K16为00000001,即输入的数据是01H,如图14所示。图14 第一次置K23K16为00000001第二次置K23K16为00000001,即输入的数据是01H,如图15所示。图15 第二次置K23K16为00000001输出的结果是00,如图16所示。图16 输出结果00第3组测试数据:第一次置K23K16为00000010,即输入的数据是02H,如图17所示。图17 第一次置K23K16为00000010第二次置K23K16为00000001,即输入的数据是01H,如图18所示。图18 第二次置K23K16为00000001输出的结果是FF,如图19所示。图19 输出结果FF3.2.2程序释义_FETCH_;程序开始执行一条取指的微指令,读入程序第一条指令INPUT;将第一个数输入ACHS R0,A;将A中的内容传送到R0中INPUT;将第二个数输入AJIAN A,R0;将A-R0结果保存到A中TZH_

温馨提示

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

评论

0/150

提交评论