为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

组成原理课程设计(比较两个数的大小)

2017-09-30 17页 doc 188KB 201阅读

用户头像

is_614050

暂无简介

举报
组成原理课程设计(比较两个数的大小)组成原理课程设计(比较两个数的大小) 题目: 比较两个数的大小 院 系: 计算机科学与工程学院 专业班级: 计算机10-5班 学 号: 2010303157 学生姓名: 张 绪 磊 指导教师: 陈 辉 2013年 1月 9日 安徽理工大学课程设计(论文)任务书 计算机科学与工程学院 计算机科学与技术系 学 号 2010303157 学生姓名 张绪磊 专业(班级) 计算机10-5班 设计题目 比较两个数的大小 设 计 1.指令系统设计基于DJ-CPTH超强型计算机组成原理教学实验系统。 技 2.利用计...
组成原理课程设计(比较两个数的大小)
组成原理课程(比较两个数的大小) 题目: 比较两个数的大小 院 系: 计算机科学与工程学院 专业班级: 计算机10-5班 学 号: 2010303157 学生姓名: 张 绪 磊 指导教师: 陈 辉 2013年 1月 9日 安徽理工大学课程设计(论文)任务书 计算机科学与工程学院 计算机科学与技术系 学 号 2010303157 学生姓名 张绪磊 专业(班级) 计算机10-5班 设计题目 比较两个数的大小 设 计 1.指令系统设计基于DJ-CPTH超强型计算机组成原理教学实验系统。 技 2.利用计算机微程序设计思想和进行指令系统分析和设计。 术 3.在DJ-CPTH实验箱上实现基本指令系统。 参 数 1.在基本模型机的基础上构建一组能实现输入、输出、减、逻辑与、逻辑或、逻设 辑非、转移指令等7个功能的指令,这些指令的助记符不得与指导书上相同。 计 2.指令包括立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。 要 3.利用新构建的指令系统,比较两数大小。 求 工 1.课程设计说明书4000字。 作 2.画出图,编写微指令代码和程序。 量 1.理解设计题目,分析设计要求,制定设计。 工 2.查阅资料和请教老师,解决自己的不理解的地方,编写源程序和指令。 作 3.在计算机和CPTH实验仪的支持下,调入指令系统和程序,运行,测试,完成系计 统的设计。 划 4.完成课程设计的写作并提交。 [1] 蒋本珊.计算机组成原理.第二版.北京:清华大学出版社.2008 参 [2] 李敬兆.8086/8088和基于RAM核汇编语言程序设计.第二版.合肥:中国科学考 技术大学出版社.2012 资 [3] 白中英.计算机组成原理.第二版.北京:科学出版社.1998 料 [4] DJ-CPTH超强型计算机组成原理与系统结构实验指导书 指导教师签字 系主任签字 2012年 12月 20日 安徽理工大学课程设计(论文)成绩评定表 学生姓名: 张 绪 磊 学号: 2010303157 专业班级: 计算机10-5班 设计题目: 比较两个数的大小 指导教师评语: 成绩: 指导教师: 年 月 日 摘要 本次计算机组成原理课程设计课题是基本模型机的设计与实现。利用CPU与简单模型机来实现计算机组成原理课程及实验中所学到的实验原理和编程思想,在DJ-CPTH试验仪的支持下,编写指令的应用程序,用微程序控制器实现了一系列的指令功能,最终达到将理论与实践相联系。本次设计完成了各指令的格式以及编码的设计,实现了各机器指令代码,设计基本模型机的指令系统,利用新构建的指令系统编程,实现比较两数大小的功能。 关键字:计算机组成原理,指令,模型机,比较两个数的大小 I 目录 1.程序设计 .............................................................................................. 1 1.1设计背景............................................................................................................................ 1 1.2设计原理............................................................................................................................ 1 1.3设计目标............................................................................................................................ 1 1.4三种寻址方式 ..................................................................................................................... 2 1.5控制位介绍 ......................................................................................................................... 2 2.系统设计 .............................................................................................. 4 2.1模型机的指令系统设计 .................................................................................................... 4 2.2JMP指令执行流程 .............................................................................................................. 5 2.3模型机的微指令设计 ........................................................................................................ 6 2.4比较两数大小程序设计 .................................................................................................... 7 3.系统实现 .............................................................................................. 9 3.1实现比较两数的大小 ........................................................................................................ 9 3.2程序系统分析 ................................................................................................................... 11 4.总结 .................................................................................................... 13 参考文献 ............................................................................................... 14 II 1.程序设计 1.1设计背景 通过计算机组成原理理论课和几次实验的学习,尝试设计八类机器指令, 并编写相应的微程序,完成由基本单元电路构成一台基本模型机,再经过调 试指令和模型机使其在微程序的控制下自动产生各部件单元的正常工作控制 信号。 本课程设计的模型机的指令码为8位,根据指令类型的不同,可以有0 到2个操作数,指令码的最低两位用来选择R0-R3寄存器。在微程序控制方 式下,用指令码作为微地址来寻址微程序存储器,找到执行该指令的微程序。 在本模型机中,一条指令最多分为四个状态周期,一个状态周期为一个时钟 脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。模型机 有24位控制位以控制寄存器的输入输出,选择运算器的运算功能,存储器的 读写。 换句话说,这次设计,计算机数据通路的控制将由微程序控制器来完成, PU从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微C 指令组成的序列来完成,即一条机器指令对应一条微程序,一条微程序又有 若干微指令组成,一条微指令的功能由24位操作信号(即控制位)实现。 1.2设计原理 计算机中CPU是核心,它是通过指令和微指令的执行来工作的。指令是计算机要完成的某一项功能。它对应到执行的过程中是一段微程序。一段微程序含多条为指令,而一条微指令又含多个微命令。一个微命令驱动某个硬件部件执行某种操作。通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。 在各个模块中,各模块的控制的控制信号都是手动模拟产生的。而在真正的实验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之相配合的时序来完成,即一条机器指令对应一个微程序。 1.3设计目标 课程设计要求实现机器指令:CHS(传送),INPUT(输入),OUTPUT(输出) 1 YU(逻辑与),HUO(逻辑或),FEI(逻辑非),JIAN(不带进位算术减), JMPN,JMPC,JMPZ(转移指令)。并且要包括立即数寻址、寄存器直接寻址、存储器直接寻址三种寻址方式。最后要在设计的指令系统基础上,编写程序实现比较两个数大小的功能。 1.4三种寻址方式 (1)立即数寻址:MCS-51单片机的一种寻址方式,操作数就写在指令中,也称作立即数,立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。把“#”号放在立即数前面,以表示该寻址方式为立即寻址,如#20H。 (2)寄存器直接寻址:指令中指出暂存操作数的寄存器。寄存器的内容就是操作数。如:AX里放1,BX里放2,ADD AX,BX结果为AX=3。 (3)存储器直接寻址:存储器寻址是寄存器与存储器间的寻址方式。使用存储器寻址的指令,其操作数通常存放在代码段之外的存储区,如数据段、堆栈段和附加段。指令中,通常给出的是存储单元地址或产生存储单元地址的有关信息。执行指令时,需要首先计算出数据存放的有效地址,接着计算出其在存储器中的物理地址,然后访问存储器,读取数据,再执行指令规定的基本操作。 1.5控制位介绍 本设计是在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上 2 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 选择具体的寄存器 X2 X1 X0 输出寄存器 0 0 0 IN_OE 外部输入门 0 0 1 IA_OE 中断向量 0 1 0 ST_OE 堆栈寄存器 0 1 1 PC_OE PC寄存器 1 0 0 D_OE 直通门 1 0 1 R_OE 右移门 1 1 0 L_OE 左移门 1 1 1 没有输出 表2 ALU运算 S2 S1 S0 功能 0 0 1 A-W 减 0 1 0 A|W 或 0 1 1 A & W 与 1 0 1 A-W-C 带进位减 1 1 0 ~A A取反 1 1 1 A 输出A 3 2.系统设计 2.1模型机的指令系统设计 (1)整机逻辑框图如图1: 图1逻辑图 (2).根据设计要求,设计出的指令要包括传送,逻辑与,逻辑或,减运算,输入,输出,转移这八种指令,且要运用立即数寻址,寄存器寻址,间接寻址三种寻址方式。由此设计出如下表3: 表3 指令集 指令类型 助记符 机器码 功能 取指 _FATCH_ 000000xx 00-03 IR?PC 输入 INPUT 000001xx 04-07 输入?A 输出 OUTPUT 000010xx 08-0B 输出 算术减(不带进JIAN A,R? 000011xx 0C-0F R?-A?A 位) CHS A,R? 000100xx 10-13 R??A 传送 CHS R?,A 000101xx 14-17 A?R? CHS A,#* 000110xx 18-1B * *?A 4 逻辑与 YU A,R? 000111xx 1C -1F R?&&A?A 进位跳转 JMPC * 001000xx 20-23 * 跳到?* 全零跳转 JMPZ * 001001xx 24-27 * 跳到* 逻辑或 HUO A,R? 001010xx 28-2B R?||A?A 无条件跳转 JMPN * 001011xx 2C-2F * 跳到?* 取反运算 FEI A 010001xx 44-47 -A?A (3).计算机上的指令集显示如图2. 图2指令集图 2.2JMP指令执行流程 JMP addraddr->PC PC +1 PCCK PC ;PC加1 (RAM)RM ODBBUS IDBPLSA IR2 ;取本指令第二字节IR2 IR2 OPC LABBUS OAB ;由IR2内容形成转移地址送PC PCOPC IABBUS OAB ;PC计数器内容做访问内存地址 (RAM)RM ODB BUS IDB PLSA IR1 ;从内存该地址单元读出指令寄存器IR1 此程序由两个微指令周期: a.PC+1从内存中取得指令第2个字节送入IR2. b.IR2内容形成地址转移到PC 5 2.3模型机的微指令设计 (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 微指令集 助记符 状态 微地址 微程序 _FEICH_ T0 00 CBFFFF INPUT T1 04 FFFF17 T0 05 CBFFFF OUTPUT T1 08 FFDF9F T0 09 CBFFFF JIAN A,R? T2 0C FFF7EF T1 0D FFFE91 T0 0E CBFFFF CHS A,R? T1 10 FFF7F7 T0 11 CBFFFF CHS R?,A T1 14 FFFB9F T0 15 CBFFFF CHS A,#* T1 18 C7FFF7 T0 19 CBFFFF YU A,R? T2 1C FFF7EF T1 1D FFFE93 T0 1E CBFFFF JMPC * T1 20 C6FFFF T0 21 CBFFFF JMPZ * T1 24 C6FFFF T0 25 CBFFFF HUO A,R? T2 28 FFF7EF T1 29 FFFE92 T0 2A CBFFFF JMPN * T1 2C C6FFFF T0 2D CBFFFF FEI A T1 30 FFFE96 T0 31 CBFFFF 6 (3)计算机上的微指令集显示如图3: 图3微指令集图 2.4比较两数大小程序设计 程序设计思路: 将输入的两数想减,比较结果和标志位进位比较两数的大小。则有程序流程 图4: 7 —>R0 —>A A-R0—>A A与标志位C A=0 A!=0&C=1 A!=0&C=0 OUT A=0 OUT A=FF OUT A=01 结束 图4流程图 8 3.系统实现 3.1实现比较两数的大小 (1).按照系统分析中得到的指令集,在DJ-CPTH实验软件中新建指令系统,生成.mac文件和.mic文件。 ).在DJ-CPT816实验软件中新建.asm文件,输入程序: (2 INPUT CHS R0,A INPUT JIAN A,R0 JMPC LOOP2 JMPZ LOOP1 CHS A,#1h OUTPUT JMPN 12H LOOP1: OUTPUT JMPN 12H LOOP2: CHS A,#0FFH OUTPUT (3).将程序另存为.asm文件,再汇编成机器码,调试窗口会显示出程序、机器码、反汇编指令,如下表5。 表5反汇编指令集 程序地址 机器码 反汇编指令 指令说明 00 04 INPUT 将第一个输入数打入A 01 14 CHS R0,A 将A的数转移到R0 02 04 INPUT 将第二个输入数打入A 03 0C JIAN A,R0 将A-R0结果送到A 04 2010 JMPC LOOP2 如果借位跳转到LOOP2 06 240D JMPZ LOOP1 如果A=0跳转到LOOP1 08 1801 CHS A,#1H 不符合上述条件A=1 0A 0B OUTPUT 输出A 0B 2C12 JMPN 12H 程序结束 9 0D LOOP1: LOOP1: 0D 08 OUTPUT 输出0 0E 2C12 JMPN 12H 程序结束 10 LOOP2: LOOP2: 10 1812 CHS A,#0FH 把FF输入A 12 08 OUTPUT 输出FF (4).实验结果: 相等:第一次置K23—K16 为00001001,第二次置K23—K16 为00001001,输出的是00,结果如图3-1. 图3-1 相等的结果 大于:第一次置K23—K16 为00001001,第二次置K23—K16 为00001000,输出的是FF,结果如图3-2. 10 图3-2 大于的结果 小于:第一次置K23—K16 为00001001,第二次置K23—K16 为00001011,输出 的是01,结果如图3-3. 图3-3小于的结果 3.2程序系统分析 程序开始执行一条取指的微指令,读入程序第一条指令。 INPUT //将第一个输入数打入A 11 CHS R0,A //将累加器A的数转移到R0寄存器 INPUT //将第二个输入数打入A JIAN A,R0 //将A-R0结果送到A JMPC LOOP2 //如果借位就跳转到LOOP2 JMPZ LOOP1 //如果A=0就跳转到LOOP1 CHS A,#1H //如果不符合上述条件将1输入A OUTPUT //输出A JMPN 12H //程序结束 LOOP1: OUTPUT //输出0 JMPN 12H LOOP2: MOV A,#0FFH //把FF输入A OUTPUT //输出FF 12 4.总结 刚开始拿到课程设计题目的时候,感觉比较茫然,不知道该如何入手,虽然前面做了一些实验,但是当真正的要将理论联系实际的时候,还是有些棘手的。后来和同学一起商讨,先将指导书弄明白在考虑做课程设计。指导书上介绍的内容很多,我们慢慢的也懂了一些,那些不会的东西,我们请教了老师为我们解答,这样初步的难题得到了解决。然后我们就开始编辑指令,或许是因为前期的准备工作做得比较好吧,指令设计阶段做得很顺利,大概用了半天时间就好了,然后调试了一下,修改了部分地方,就差不多可以了。万事开头难,的确如此,前期研究指导书都不知道花了多久,所幸前面的付出有了回报,给我们的后面设计解决了很多困难和节省了大量时间。对于此次课程设计,总体来说,收获颇丰,无论是在培养自己的实验动手能力还是培养自己的性情方面。我在紧张和兴奋中学会了很多东西。特别是在这次设计中,我体会到与同学之间合作的乐趣。在相互的配合中,我们了解到团结的重要性。课程设计结束了,从中我们也学到了不少知识。虽然计算机组成原理的课程设计与学习已经结束,可我们学习之路并没有结束,我们会继续努力学习其相关的知识,以适应社会的发展与需要,这样才能真正成为一名合格的大学生。 13 参考文献 [1] 蒋本珊.计算机组成原理.第二版.北京:清华大学出版社.2008 [2] 李敬兆.8086/8088和基于RAM核汇编语言程序设计.第二版.合肥:中国科学技术大学出版社.2012 [3] 白中英.计算机组成原理.第二版.北京:科学出版社.1998 [4] DJ-CPTH超强型计算机组成原理与系统结构实验指导书 14
/
本文档为【组成原理课程设计(比较两个数的大小)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索