课设韩文敬.docx
- 文档编号:2882512
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:12
- 大小:142.50KB
课设韩文敬.docx
《课设韩文敬.docx》由会员分享,可在线阅读,更多相关《课设韩文敬.docx(12页珍藏版)》请在冰豆网上搜索。
课设韩文敬
沈阳航空航天大学
课程设计报告
课程设计名称:
计算机组成原理课程设计
课程设计题目:
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
附录(源代码)12
第1章总体设计方案
1.1设计原理
根据海明码的实现原理,在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验组的值发生变化。
不但可以发现出错,还能指出错误的地方,并能通过电路完成自动纠正。
设校验位的个数为r,则它能表示2r个信息,用其中的一位信息指出“没有错误”,其余的2r-1指出错误发生的位置。
错误也可能发生在校验;位,因此只有2r-1-r个信息能用于纠正被传送的数据的位数k,必须满足:
2r≥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=D8⊕D7⊕D5⊕D4⊕D2;.
C2=D8⊕D6⊕D5⊕D3⊕D2;
C3=D7⊕D6⊕D5⊕D1;
C4=D4⊕D3⊕D2⊕D1;
1.2设计思路
程序的第一步应是准备工作,通过算法的分析易知,准备数据有循环控制次数,由数据位为8bit二进制数,则可设循环次数为8,标志位,控制不同子程序实现,第一个校验位可直接生成,不需要标志位,且结果运算需置一位,则需设置4个,可在内存中存储,当子程序开始执行时,首先需将标志位更改,表示此过程已经执行。
数据输入,在COP2000软件中,为了直观简便观看调试程序,可用立即数送入,如:
MOVA,32H;而在硬件测试中,应采用中断方式输入,其优点是可连续生成不同数据的海明码,灵活,用户输入数据,如:
LOOP1:
JMPLOOP1
ORG0AH
IN
两种方式产生结果相同。
生成海明码关键是校验位,由设计原理可知,校验位的值为数据中各个被监测数据位的异或值,它的简便等价求法是将各相关数据位进行加法运算,当结果为奇数时,检验位为1,当结果为偶数时,检验位为0,即结果的第一位为1,检验位为1,反之,为0;又四个校验位的求法过程相同,则可以将相同部分划定为一个循环,并采用标志位控制校验位相应算出,每算出一个校验位,将值送入内存单元中。
已知各个校验位,通过移位将这些值放在对应位上,通过OUT实现海明码输出。
1.3设计环境
利用伟福COP2000型计算机组成原理实验仪软件和计算机,在COP2000试验仪软件上编程实现海明码的生成。
伟福COP2000试验仪软件的指令集分为如下大类:
算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。
伟福COP2000计算机组成原理实验仪软件截图如1.3所示:
本程序所用到的相应的指令集
(1)算术逻辑运算指令
SUBA,#II-----------从累加器中减去立即数后加入累加器A中
ANDA,#II-----------累加器A“与”立即数II
(2)数据传送指令
MOVR?
,#II----------将立即数II送到寄存器R?
中
MOVMM,A-----------将累加器A中的值送到存储器MM地址中
MOVA,#II------------将立即数II送到累加器A中
MOVR?
,A------------将累加器A中的值送到寄存器A中
MOVA,R?
------------将寄存器R?
的值送到累加器A中
MOVA,MM-----------将存储器MM地址中的值送到累加器A中
MOV@R?
A-------------将累计器A的值送到间址存储器中
RRA-----------------累加器右移指令
RLA-----------------累加器左移指令
(3)跳转指令
JZMM---------------若零标志位置1,跳转到MM地址
JMPMM---------------跳转到MM
如下为COP2000计算机组成原理实验软件截图:
图1.3伟福COP2000计算机组成原理试验仪软件截图
第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所示:
图2.2.1存数流程图
2.求校验位:
如图2.2.2所示:
图2.2.2求校验位流程图
3.结果运算:
如图2.2.3
图2.2.3结果运算流程图
第3章程序调试与结果测试
3.1程序调试
(1)语法错误
(1)指令混淆,立即数和存储单元的地址只差一个“#”。
编程开始阶段,不熟悉指令集,执行把立即数放入累加器的操作,误将MOVA,01H用作MOVA,#01H。
(2)指令集不支持将某一存储单元内的数据直接写入寄存器内,必须通过累加器A进行中转。
因此使用MOVR0,00H出现错误。
正确的应为MOVA,00H;MOVR0,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
C1=D8⊕D7⊕D5⊕D4⊕D2=0
C2=D8⊕D6⊕D5⊕D3⊕D2=1
C3=D7⊕D6⊕D5⊕D1=0
C4=D4⊕D3⊕D2⊕D1=1
则程序运行结果正确;其它几组数据同理,测试结果与算得结果相同,不存在误差。
参考文献
[1]白中英.计算机组成原理(第4版)[M].北京:
科学出版社.2008
[2]王爱英.计算机组成与结构(第4版)[M].北京:
清华大学科学出版社.2006
[3]唐硕飞.计算机组成原理(第2版).[M].北京:
高等教育出版社.2008
课程设计总结:
1.首先,通过本次课程设计,让我对计算机的组成原理有了更深层次的理解,特别是对数据在内存单元以及寄存器中的存储原理和操作数走向问题。
2.其次,对海明码有了认识和了解,同时掌握了伟福COP2000试验仪和COP2000软件的使用,同时学会了实际汇编和程序的执行过程。
3.再次,明白到各个学科紧密相关,组成原理与微机原理知识的相互应用,硬件与编程之间密切联系,程序最终依靠硬件实现,并依靠硬件编程,硬件为其提供一个平台,二者缺一不可,通过这样的学习加深理解,提供综合能力。
4.最后,特别感谢老师的悉心教导,不仅丰富我学科上的的知识,更提高了我的学习能力,对我产生很大的帮助,在以后的学习生活中还要严格要求自己,充实自己,争取更多的进步。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
附录(源代码)
MOVR0,#00H;存储不同校验位的对应的数据位状态
MOVR2,#08H;移位控制的循环次数
LOOP1:
JMPLOOP1
ORG0AH
IN;数据输入
MOV07H,A
MOVA,#01H
MOV00H,A;标志位C2
MOV01H,A;标志位C3
MOV02H,A;标志位C4
MOV08H,A;标志位(结果)
MOVA,07H;取数据
ANDA,#0DAH;取第1个校验码的线性码位
MOVR0,A
MOVR3,#03H;校验位C1地址设定
LOOP:
RRA;判断各位中1的个数,为奇数则设置冗余位;
MOVR1,A
ADDA,R0
MOVR0,A
MOVA,R2
SUBA,#01H
MOVR2,A
MOVA,R1
JZL1
JMPLOOP
L1:
MOVA,R0
ANDA,#01H;取个位作为校验位值
MOV@R3,A;记入结果
MOVA,00H;判断标志位,校验位求取入口
SUBA,#01H
JZC2
MOVA,01H
SUBA,#01H
JZC3
MOVA,02H
SUBA,#01H
JZC4
JMPRESULT
C2:
MOVA,#03H;C2校验位运算
MOV00H,A
MOVR2,#08H
MOVA,07H
ANDA,#0B6H;取第2个校验码的线性码位
MOVR0,A
MOVR3,#04H;校验位C2地址设定
JMPLOOP
C3:
MOVA,#03H;C3校验位运算
MOV01H,A
MOVR2,#08H
MOVA,07H
ANDA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课设韩文敬