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

计算机组成原理课设(韩文敬海明码生成)

2018-02-13 14页 doc 50KB 55阅读

用户头像

is_852287

暂无简介

举报
计算机组成原理课设(韩文敬海明码生成)计算机组成原理课设(韩文敬海明码生成) 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称:计算机组成原理课程设计 课程设计题目:COP2000实现汉明码的生成 院(系):计算机学院 专 业:计算机科学与技术 班 级:94010102 学 号:2009040101045 姓 名:韩文敬 指导教师:杨华 完成日期:2012年1月13日 沈阳航空航天大学课程设计报告 目 录 第1章 总体设计方案 ........................................................
计算机组成原理课设(韩文敬海明码生成)
计算机组成原理课设(韩文敬海明码生成) 沈阳航空航天大学 课 程 设 计 报 告 课程名称:计算机组成原理课程设计 课程设计目:COP2000实现汉明码的生成 院(系):计算机学院 专 业:计算机科学与技术 班 级:94010102 学 号:2009040101045 姓 名:韩文敬 指导教师:杨华 完成日期:2012年1月13日 沈阳航空航天大学课程设计报告 目 录 第1章 总体设计 ............................................................................................... 1 1.1 设计原理 ........................................................................................................ 1 1.2 设计思路 ........................................................................................................ 1 1.3 设计环境 ........................................................................................................ 2 第2章 详细设计方案 ............................................................................................... 4 2.1 算法与程序的设计与实现 ................................................................................ 4 2.1.1算法具体描述 ............................................................................................... 4 2.2 图的设计与实现 ....................................................................................... 4 2.2.1流程图具体分析 ........................................................................................... 4 第3章 程序调试与结果测试 ................................................................................... 8 3.1 程序调试 ........................................................................................................... 8 3.2 程序测试及结果分析 ....................................................................................... 8 参考文献 .................................................................................................................... 10 附 录(源代码) ................................................................................................... 11 -I- 沈阳航空航天大学课程设计报告 第1章 总体设计方案 第1章 总体设计方案 1.1 设计原理 根据海明码的实现原理,在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验组的值发生变化。不但可以发现出错,还能指出错误的地方,并能通过电路完成自动纠正。 r设校验位的个数为r,则它能表示2个信息,用其中的一位信息指出“没有 r错误”,其余的2-1指出错误发生的位置。 r错误也可能发生在校验;位,因此只有2-1-r个信息能用于纠正被传送的数据的位数k,必须满足: r2?k+1+r 对8位数据位,查表可知需要4位校验位。如表1所示: 表1 海明码 H01 H02 H03 H04 H05 H06 H07 H08 H09 H10 H11 H12 数据排列 C1 C2 D8 C3 D7 D6 D5 C4 D4 D3 D2 D1 其校验位等于所监测数据位的异或,即: C1=D?D?D?D ?D;87542 C2=D?D?D?D ?D;86532 C3=D?D?D?D;7651 C4=D?D?D?D; 4321 1.2 设计思路 程序的第一步应是准备工作,通过算法的分析易知,准备数据有循环控制次数,由数据位为8bit二进制数,则可设循环次数为8,标志位,控制不同子程序 -1- 沈阳航空航天大学课程设计报告 第1章 总体设计方案 实现,第一个校验位可直接生成,不需要标志位,且结果运算需置一位,则需设置4个,可在内存中存储,当子程序开始执行时,首先需将标志位更改,表示此过程已经执行。数据输入,在COP2000软件中,为了直观简便观看调试程序,可用立即数送入,如:MOV A,32H;而在硬件测试中,应采用中断方式输入,其优点是可连续生成不同数据的海明码,灵活,用户输入数据,如: LOOP1: JMP LOOP1 ORG 0AH IN 两种方式产生结果相同。 生成海明码关键是校验位,由设计原理可知,校验位的值为数据中各个被监测数据位的异或值,它的简便等价求法是将各相关数据位进行加法运算,当结果为奇数时,检验位为1,当结果为偶数时,检验位为0,即结果的第一位为1,检验位为1,反之,为0;又四个校验位的求法过程相同,则可以将相同部分划定为一个循环,并采用标志位控制校验位相应算出,每算出一个校验位,将值送入内存单元中。 已知各个校验位,通过移位将这些值放在对应位上,通过OUT实现海明码输出。 1.3 设计环境 利用伟福COP2000型计算机组成原理实验仪软件和计算机,在COP2000试验仪软件上编程实现海明码的生成。伟福COP2000试验仪软件的指令集分为如下大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。 伟福COP2000计算机组成原理实验仪软件截图如1.3所示: 本程序所用到的相应的指令集 (1) 算术逻辑运算指令 SUB A,#II-----------从累加器中减去立即数后加入累加器A中 AND A, #II -----------累加器A“与”立即数II (2) 数据传送指令 -2- 沈阳航空航天大学课程设计报告 第1章 总体设计方案 MOV R?,#II----------将立即数II送到寄存器R?中 MOV MM, A -----------将累加器A中的值送到存储器MM地址中 MOV A,#II------------将立即数II送到累加器A中 MOV R?,A------------将累加器A中的值送到寄存器A中 MOV A,R?------------将寄存器R?的值送到累加器A中 MOV A, MM -----------将存储器MM地址中的值送到累加器A中 MOV @R?,A-------------将累计器A的值送到间址存储器中 RR A-----------------累加器右移指令 RL A-----------------累加器左移指令 (3)跳转指令 JZ MM---------------若零标志位置1,跳转到MM地址 JMP MM---------------跳转到MM 如下为COP2000计算机组成原理实验软件截图: 图 1.3 伟福COP2000计算机组成原理试验仪软件截图 -3- 沈阳航空航天大学课程设计报告 第2章 详细设计方案 第2章 详细设计方案 2.1 算法与程序的设计与实现 本课设采用伟福COP2000实验仪软件和计算机实现海明码生成的功能,利用伟福COP2000的指令集编程实现。 2.1.1算法具体描述 (1)存数。整个算法所需的准备工作,其中包括:8bit二进制数据,标志位,循环次数,与校验位对应相关数据位。具体存入数据及功能如下: 将8bit二进制数据存到存储器07H单元;标志位设置在存储器00H,01H,02H单元,预先存入01数据,实现对不同子程序的选择;循环次数设置8次,控制与校验位相关数据位的加和次数;与校验位对应相关数据位初始化为0。 (2)求校验位。这是整个程序的核心,首先计算C1,将数据取出与DA进行与运算,便可以得到对应本校验位监测的所有数据位,其它数据位为0,然后通过多次移位算出这些数据的加和,其结果的个位便是所求校验位。C2,C3,C4算法相同,其对应与运算的立即数位B6、71、0F。 由在各个校验位的算法大体相同,可将这些相同的部分采用循环这个单独模块实现,并依C1、C2、C3、C4顺序计算,为避免重复执行某一校验位,在执行每个校验位子程序开头更改标志位,使得出校验位后可调到下一个校验位。 (3)结果运算。各个校验位分别存在03、04、05、06内存单元。将C1左移,将C2加到C1中,再移位,将C3加到C1中,再移位,将C4加到C1中,然后输出,中断返回,进行下个数据海明码的生成。 2.2 流程图的设计与实现 2.2.1流程图具体分析 1.存数操作:如图2.2.1所示: -4- 沈阳航空航天大学课程设计报告 第2章 详细设计方案 开 始 将循环次数(8)、线性码分别送R2,R0寄存器,将4个标志位分别送入00H,01H,02H,08H单元 结 束 图2.2.1 存数流程图 2(求校验位:如图2.2.2所示: 开始 输入数据,求出C1的线性码位,设置C1校验位存储地址 将移位后的线性码加上原线性码位,并将循环数减一。 R2 =0 ? N Y 取加和个位数并记入03单元 输入数据,求出C2的线性码位,设置C2校验位存储地址,将循环次数从新设为8,更改标志位。 1 -5- 沈阳航空航天大学课程设计报告 第2章 详细设计方案 1 将移位后的线性码加上原线性码位,并将循环数减一。 R2 =0 ? N Y 取加和个位数并记入04单元 输入数据,求出C3的线性码位,设置C3校验位存储地址,将循环次数从新设为8,更改标志位。 将移位后的线性码加上原线性码位,并将循环数减一。 R2 =0 ? N Y 取加和个位数并记入05单元 输入数据,求出C4的线性码位,设置C4校验位存储地址,将循环次数从新设为8,更改标志位。 将移位后的线性码加上原线 性码位,并将循环数减一。 R2 =0 ? N 取加和个位数并记入06单元 结束 图2.2.2 求校验位流程图 -6- 沈阳航空航天大学课程设计报告 第2章 详细设计方案 3.结果运算:如图2.2.3 开始 C1左移三次,每次左 移后,将C2、C3、C4 分别加到C1中。 输出结果,中断返回 结束 图2.2.3 结果运算流程图 -7- 沈阳航空航天大学课程设计报告 附录 第3章 程序调试与结果测试 3.1 程序调试 (1)语法错误 (1)指令混淆,立即数和存储单元的地址只差一个“#”。编程开始阶段,不熟悉指令集,执行把立即数放入累加器的操作,误将MOV A, 01H用作MOV A, #01H。 (2)指令集不支持将某一存储单元内的数据直接写入寄存器内,必须通过累加器A进行中转。因此使用MOV R0, 00H出现错误。正确的应为MOV A,00H;MOV R0, A。 (2)逻辑错误 (1)循环位没重新赋值,每执行生成一个校验位后,循环位均为零,所以应在C2,C3,C4中首先重新赋值8到R2中。 (2)标志位设定方式不当,导致程序无法按正常顺序执行,正确做法将标志位设为1,每当求某一校验位都在其程序前更改标志位,表示校验位已求。 (3)地址超出范围,采用中断方式执行主程序时,设程序首指令地址为E0H,导致最后的指令超出了地址范围。 3.2 程序测试及结果分析 软件测试用源程序,COP2000软件,其输入采用立即数; 测试数据X1=32,X2=9E,X3=DA,运行程序后,可分别输出Y1=05,Y2=03,Y3=0C; 当X1=32时,可知数据位排列,见表2。 表 2 D8 D7 D6 D5 D4 D3 D2 D1 0 0 1 1 0 0 1 0 -8- 沈阳航空航天大学课程设计报告 附录 C1=D?D?D?D ?D=087542 ?D?D?D ?D=1C2=D86532 C3=D?D?D?D=07651 ?D?D?D=1 C4=D4321 则程序运行结果正确;其它几组数据同理,测试结果与算得结果相同,不存在误差。 -9- 沈阳航空航天大学课程设计报告 附录 参考文献 [1] 白中英.计算机组成原理(第4版)[M].北京:科学出版社.2008 [2] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学科学出版社.2006 [3] 唐硕飞.计算机组成原理(第2版).[M].北京:高等教育出版社.2008 -10- 沈阳航空航天大学课程设计报告 附录 附 录(源代码) MOV R0,#00H ;存储不同校验位的对应的数据位状态 MOV R2,#08H ;移位控制的循环次数 LOOP1: JMP LOOP1 ORG 0AH IN ;数据输入 MOV 07H,A MOV A,#01H MOV 00H,A ;标志位C2 MOV 01H,A ;标志位C3 MOV 02H,A ;标志位C4 MOV 08H,A ;标志位(结果) MOV A,07H ;取数据 AND A,#0DAH ;取第1个校验码的线性码位 MOV R0,A MOV R3,#03H ;校验位C1地址设定 ;判断各位中1的个数,为奇数则设置冗余位 ; LOOP: RR A MOV R1,A ADD A,R0 MOV R0,A MOV A,R2 SUB A,#01H MOV R2,A MOV A,R1 JZ L1 JMP LOOP L1: MOV A,R0 AND A,#01H ;取个位作为校验位值 MOV @R3,A ;记入结果 MOV A,00H ;判断标志位,校验位求取入口 SUB A,#01H JZ C2 MOV A,01H SUB A,#01H JZ C3 MOV A,02H SUB A,#01H -11- 沈阳航空航天大学课程设计报告 附录 JZ C4 JMP RESULT C2: MOV A,#03H ;C2校验位运算 MOV 00H,A MOV R2,#08H MOV A,07H AND A,#0B6H ;取第2个校验码的线性码位 MOV R0,A MOV R3,#04H ;校验位C2地址设定 JMP LOOP C3: MOV A,#03H ;C3校验位运算 MOV 01H,A MOV R2,#08H MOV A,07H AND A,#71H ;取第3个校验码的线性码位 MOV R0,A MOV R3,#05H ;校验位C3地址设定 JMP LOOP C4: MOV A,#03H ;C4校验位运算 MOV 02H,A MOV R2,#08H MOV A,07H AND A,#0FH ;取第4个校验码的线性码位 MOV R0,A MOV R3,#06H ;校验位C4地址设定 JMP LOOP RESULT: ;校验位合并及结果输出 MOV A,03H RL A ADD A,04H RL A ADD A,05H RL A ADD A,06H OUT RETI ;中断返回 END -12- 沈阳航空航天大学课程设计报告 课程设计总结: 1( 首先,通过本次课程设计,让我对计算机的组成原理有了更深层次 的理解,特别是对数据在内存单元以及寄存器中的存储原理和操作 数走向问题。 2( 其次,对海明码有了认识和了解,同时掌握了伟福COP2000试验仪 和COP2000软件的使用,同时学会了实际汇编和程序的执行过程。 3( 再次,明白到各个学科紧密相关,组成原理与微机原理知识的相互 应用,硬件与编程之间密切联系,程序最终依靠硬件实现,并依靠 硬件编程,硬件为其提供一个平台,二者缺一不可,通过这样的学 习加深理解,提供综合能力。 4( 最后,特别感谢老师的悉心教导,不仅丰富我学科上的的知识,更 提高了我的学习能力,对我产生很大的帮助,在以后的学习生活中 还要严格要求自己,充实自己,争取更多的进步。 指导教师评语: 指导教师(签字): 年 月 日 课程设计成绩 -13-
/
本文档为【计算机组成原理课设(韩文敬海明码生成)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索