计算机组成原理课程设计.docx
《计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
计算机组成原理课程设计
目录
一、课设目的3
二、课设任务3
三、使用的设备及软件3
设备3
软件3
四、设备连接4
五、编程题目4
六、程序流程图5
七、程序5
八、程序每条指令对应的机器代码和对应的微指令6
九、调试过程7
十、结果11
十一、总结11
一、课设目的
通过课程设计更清楚地理解下列基本概念:
1、计算机的硬件基本组成;
2、计算机中机器指令的设计;
3、计算机中机器指令的执行过程;
4、微程序控制器的工作原理;
5、微指令的格式设计原理。
6、通过使用软件HKCPT,了解程序编译、加载的过程。
7、通过微单步、单拍调试,理解模型机中的数据流向。
二、课设任务
1、在掌握各模块功能的基础上,构成模型机;
2、熟悉模型机的通路、微指令系统、与汇编指令的关系;
3、使用微机与模型机连接调试的应用程序HKCPT;
4、编辑程序,了解程序编译、加载及运行的过程。
三、使用的设备及软件
设备
此次课设使用HK-CPT-IV型计算机组成原理实验平台,实验平台简介如下:
1.基本功能模块:
运算器模块、指令部件模块、堆栈寄存器模块、存储器模块、总线传输模块、微程序模块、启停和时序模块,以及用于调试和观察数据的监控模块。
2.组成结构:
采用总线结构。
总线分为:
内部、外部地址总线,内部、外部数据总线。
3.监控模块:
为实验调试和程序设计带来了相当的便利。
实验者可以通过监控模块来修改微程序和内存中的程序。
4.操作方式:
单机方式——整个系统可单独使用;联机方式——系统可与PC机相连。
软件
此次课设使用的软件为HKCPT,其使用介绍如下:
1.启动HKCPT:
第一次启动HKCPT,用户需设置实验平台通讯端口。
退出HKCPT时,会自动保存用户最后一次的设置。
用户选择“设置——实验平台”菜单项,在弹出的对话框中,选择相应的通讯串口、通讯波特率和延时因子。
点击确定按钮,即可使用。
2.程序编写:
选择“文件—新文件”菜单项,将新建一个空的编辑窗口。
用户在编辑窗口中输入以下程序。
输入完毕,选择“文件—另存为”菜单项,把该文件保存为demo.asm。
因为编译器支持长文件名,用户也可以把该文件保存在如“我的文档”之类的目录夹中。
用户可以直接选择“文件—打开”菜单项打开该文件。
3.程序编译:
编译是检查源文件的语法错误,如果源文件没有语法错误,编译器将生成源文件的目标代码,由于是单汇编文件,编译产生的目标代码可以直接加载调试。
用户选择“编译——编译当前文件”菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。
用户可以根据输出窗口中错误信息直接定位到源文件的相应位置。
4.程序运行:
加载后,可以运行程序,有三种运行方式:
1 微单步:
每执行一条微程序,PC指针加1,微指令向后移动一步,同时结构图中绘出执行步及上一步的数据流向,各个寄存器和控制线状态会相应改变。
2 程序单步:
从当前PC指针行执行源文件的一行语句,然后又停止。
结构图中显示的寄存器值和控制线都会随之刷新,但不显示数据流。
3 全速运行:
全速运行程序,遇到用户断点或按暂停键或执行到halt指令停止。
四、设备连接
实验过程中的设备连接包括3部分的内容:
1.数据总线的连接:
接口1
DJ1
DJ2
DJ3
DJ4
DJ5
DJ6
DJ7
PC_OUT
接口2
ALU_IN
ALU_OUT
R_IN
R_OUT
RA_IN
RA_OUT
PC_IN
AJ1
2.各模块的连线:
由于实验平台提供了连线板,在实验时,只要将连线板插在指定的地方,这样,各个模块就成功的连接了。
3.与计算机的连线:
实验平台提供的连接线将实验平台与计算机相连,这样,计算机通过软件可以和平台相互通讯。
五、编程题目
从1加到10,再带进位右移一位,最后,再加上自已学号的后三位,结果存放到RAM的40H号字节单元中。
六、程序流程图
七、程序
根据程序流程图所示,可以进行代码的编写:
MOVR0,#0A
MOVA,#0
MOVR3,#1
MOVR1,#1
ADDA,R3
MOVR2,A
MOVA,R3
SUBA,R0
JZ14
MOVA,R3
ADDA,R1
MOVR3,A
MOVA,R2
JMP08
MOVA,R2
STA20
RRCA
STA30
MOVR0,#73
ADDA,R0
STA40
HALT
八、程序每条指令对应的机器代码和对应的微指令
指令
机器代码
微指令
微代码
MOVR0,#0A
6E0A
取指指令
Dbus->Ri
DDBFFF
4DFFFF
MOVA,#0
5F00
取指指令
Dbus->Ri
DDFBFF
4DFFFF
MOVR3,#1
6C01
取指指令
Dbus->Ri
DDBFFF
4DFFFF
ADDA,R3
0C
取指指令A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
FFFCF9
FF7F79
FFFBA9
4DFFFF
MOVR2,A
4D
取指指令A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
7FBDFF
4DFFFF
MOVA,R3
3C
取指指令
Dbus->A
FF7BFF
4DFFFF
SUBA,R0
1E
取指指令
A->Dbus->Ri
取指指令
Ri->Dbus->IR2
(IR2)->Abus,Dbus->A
FFFCD6
FE7F56
FFFB86
4DFFFF
JZ14
B314
D4FFFF
MOVR3,A
4C
取指指令A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
7FBDFF
4DFFFF
MOVA,R2
3D
取指指令A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
FF7BFF
4DFFFF
JMP08
BF06
取指指令
MOVA,R2
3D
取指指令A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
FF7BFF
4DFFFF
RRCA
9F
取指指令
A>>1
FFFEF1
4DFFFF
MOVR0,#73
6C73
取指指令
DDBFFF
4DFFFF
ADDA,R0
0C8F
取指指令A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
FFFCF9
FF7F79
FFFBA9
4DFFFF
STA40
0C8F
取指指令
A->Dbus->DR1
Ri->Dbus->DR1
ALU->Dbus->A
D5FFFF
BBFDFF
4DFFFF
九、调试过程
1.全速执行:
全速执行可以一次性使所有的代码执行完毕,从而得出最终的结果。
此过程一般用于代码准确无误之后的执行,其步骤为:
单击菜单“调试”项,选择“全速执行”,最后可以看到最终的结果。
在执行的过程中,实验平台上的指示灯不断地闪烁,是由于每一条微指令都对应着不同的指示灯的明暗情况。
2.程序单步:
程序单步用于调试使用,每一次执行一条指令,其步骤为:
单击菜单“调试”项,选择“程序单步”,可以看到指令序列上的亮条纹移动了一条指令。
在执行的过程中,实验平台上的指示灯不断地闪烁,是由于一条指令对应着多条微指令,每一条微指令都对应着不同的指示灯的明暗情况。
3.微单步:
微单步可以将每一条指令包含的微指令分步执行,其步骤为:
单击菜单“调试”项,选择“微单步”,可以从结构图窗口中看到每一条微指令执行的操作。
在实验平台上,可以看到指示灯的对应不同微指令的不同明暗变化。
例如:
“SUBA,R2”对应的微指令序列为:
1 取指令
2 A->BUS->DR1
3 R2->BUS->DR2
4 ALU->BUS->A
微单步:
十、结果
1.应得结果:
1+2+3+4+5+6+7+8+9+10=55=(00110111)B
移位后得(00011011)B=(1B)H
我学号的末3位为115=(73)H
则结果为(1B)H+(73)H=(8E)H。
2.查看方法:
在“程序代码窗口”范围内单击鼠标右键,选择“读出”项,在相应的内存区间可以看到内存中的结果:
在本例中,数据显示在第4行、第1列(第40H号字节单元内存中)。
3.实际结果:
用读出命令,在程序代码窗口中读出结果——8EH,与计算结果一致。
十一、总结
这次历时64个学时的计算机组成原理课程设计结束了,我受益匪浅。
首先是在此次课程设计中,最大的收获就是在出现问题后寻找解决的办法,这一点锻炼了自己的学习能力,每次出现新问题,自己总会先照着软件上面程序运行的流程找找问题,然后跟同学讨论找出最终的解决方案。
其次,我认识到在设备的连接过程中,数据总线的连接需要很仔细,不能出错,否则机器将无法正常执行。
同时还认识到,程序的执行不是“程序编辑窗口”中所编辑的指令,而是经过编译后被加载了的指令。
最后,我也要衷心感谢袁老师的指导,正是在老师的指引和帮助下,让我学习到更多的专业知识。
《计算机组成原理》
课
程
设
计
报
告
学号:
0901********
姓名:
程华政
专业班级:
软件工程01班
指导教师:
袁全清
设计时间:
2012年3月7日-2012年3月16日
课设目的:
通过课程设计更清楚地理解下列基本概念:
1、计算机的硬件基本组成;
2、计算机中机器指令的设计;
3、计算机中机器指令的执行过程;
4、微程序控制器的工作原理;
5、微指令的格式设计原理。
6、通过使用软件HKCPT,了解程序编译、加载的过程。
7、通过微单步、单拍调试,理解模型机中的数据流向。
课设任务
1、在掌握各模块功能的基础上,构成模型机;
2、熟悉模型机的通路、微指令系统、与汇编指令的关系;
3、使用微机与模型机连接调试的应用程序HKCPT;
4、编辑程序,了解程序编译、加载及运行的过程。
使用的设备及软件:
设备
此次课设使用HK-CPT-IV型计算机组成原理实验平台,实验平台简介如下:
1.基本功能模块:
运算器模块、指令部件模块、堆栈寄存器模块、存储器模块、总线传输模块、微程序模块、启停和时序模块,以及用于调试和观察数据的监控模块。
2.组成结构:
采用总线结构。
总线分为:
内部、外部地址总线,内部、外部数据总线。
3.监控模块:
为实验调试和程序设计带来了相当的便利。
实验者可以通过监控模块来修改微程序和内存中的程序。
4.操作方式:
单机方式——整个系统可单独使用;联机方式——系统可与PC机相连。
软件
此次课设使用的软件为HKCPT,其使用介绍如下:
1.启动HKCPT:
第一次启动HKCPT,用户需设置实验平台通讯端口。
退出HKCPT时,会自动保存用户最后一次的设置。
用户选择“设置——实验平台”菜单项,在弹出的对话框中,选择相应的通讯串口、通讯波特率和延时因子。
点击确定按钮,即可使用。
2.程序编写:
选择“文件—新文件”菜单项,将新建一个空的编辑窗口。
用户在编辑窗口中输入以下程序。
输入完毕,选择“文件—另存为”菜单项,把该文件保存为demo.asm。
因为编译器支持长文件名,用户也可以把该文件保存在如“我的文档”之类的目录夹中。
用户可以直接选择“文件—打开”菜单项打开该文件。
3.程序编译:
编译是检查源文件的语法错误,如果源文件没有语法错误,编译器将生成源文件的目标代码,由于是单汇编文件,编译产生的目标代码可以直接加载调试。
用户选择“编译——编译当前文件”菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。
用户可以根据输出窗口中错误信息直接定位到源文件的相应位置。
4.程序运行:
加载后,可以运行程序,有三种运行方式:
1 微单步:
每执行一条微程序,PC指针加1,微指令向后移动一步,同时结构图中绘出执行步及上一步的数据流向,各个寄存器和控制线状态会相应改变。
2 程序单步:
从当前PC指针行执行源文件的一行语句,然后又停止。
结构图中显示的寄存器值和控制线都会随之刷新,但不显示数据流。
3 全速运行:
全速运行程序,遇到用户断点或按暂停键或执行到halt指令停止。
设备连接
实验过程中的设备连接包括3部分的内容:
1.数据总线的连接:
接口1
DJ1
DJ2
DJ3
DJ4
DJ5
DJ6
DJ7
PC_OUT
接口2
ALU_IN
ALU_OUT
R_IN
R_OUT
RA_IN
RA_OUT
PC_IN
AJ1
2.各模块的连线:
由于实验平台提供了连线板,在实验时,只要将连线板插在指定的地方,这样,各个模块就成功的连接了。
3.与计算机的连线:
实验平台提供的连接线将实验平台与计算机相连,这样,计算机通过软件可以和平台相互通讯。
编程题目
从1加到10,再带进位右移一位,最后,再加上自已学号的后三位,结果存放到RAM的40H号字节单元中。
程序流程图
寄存器分配:
1.用用R0作为计数器,判断是否退出循环;
2.R1储存每一步计算得到的结果;
R2是每一次R0减小的数,即固定为1
具体流程图如下图所示:
程序
根据程序流程图所示,可以进行代码的编写:
MOVR2,#1
MOVA,#0
MOVR0,#A
ADDA,R0
MOVR1,A
MOVA,R0
SUBA,R2
JZ0F
MOVR0,A
MOVA,R1
JMP06
MOVA,R1
RRCA
MOVR0,#7B
ADDA,R0
STA40
HAL
程序每条指令对应的机器代码和对应的微指令
指令
机器代码
微指令
微代码
MOVR2,#1
6E01
取指指令Dbus->Ri
DDBFFF4DFFFF
MOVA,#0
5F00
取指指令Dbus->Ri
DDFBFF4DFFFF
MOVR0,#A
6C0A
取指指令Dbus->Ri
DDBFFF4DFFFF
ADDA,R0
0C
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
FFFCF9FF7F79FFFBA94DFFFF
MOVR1,A
4D
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
7FBDFF4DFFFF
MOVA,R0
3C
取指指令Dbus->A
FF7BFF4DFFFF
SUBA,R2
1E
取指指令A->Dbus->Ri取指指令Ri->Dbus->IR2(IR2)->Abus,Dbus->A
FFFCD6FE7F56FFFB864DFFFF
JZ0F
B30F
D4FFFF
MOVR0,A
4C
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
7FBDFF4DFFFF
MOVA,R1
3D
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
FF7BFF4DFFFF
JMP06
BF06
取指指令
MOVA,R1
3D
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
FF7BFF4DFFFF
RRCA
9F
取指指令A>>1
FFFEF14DFFFF
MOVR0,#7B
6C7B
取指指令
DDBFFF4DFFFF
ADDA,R0
0C8F
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
FFFCF9FF7F79FFFBA94DFFFF
STA40
0C8F
取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A
D5FFFFBBFDFF4DFFFF
调试过程
1.全速执行:
全速执行可以一次性使所有的代码执行完毕,从而得出最终的结果。
此过程一般用于代码准确无误之后的执行,其步骤为:
单击菜单“调试”项,选择“全速执行”,最后可以看到最终的结果。
在执行的过程中,实验平台上的指示灯不断地闪烁,是由于每一条微指令都对应着不同的指示灯的明暗情况。
2.程序单步:
程序单步用于调试使用,每一次执行一条指令,其步骤为:
单击菜单“调试”项,选择“程序单步”,可以看到指令序列上的亮条纹移动了一条指令。
在执行的过程中,实验平台上的指示灯不断地闪烁,是由于一条指令对应着多条微指令,每一条微指令都对应着不同的指示灯的明暗情况。
3.微单步:
微单步可以将每一条指令包含的微指令分步执行,其步骤为:
单击菜单“调试”项,选择“微单步”,可以从结构图窗口中看到每一条微指令执行的操作。
在实验平台上,可以看到指示灯的对应不同微指令的不同明暗变化。
例如:
“SUBA,R2”对应的微指令序列为:
1 取指令
2 A->BUS->DR1
3 R2->BUS->DR2
4 ALU->BUS->A
结果
1.应得结果:
1+2+3+4+5+6+7+8+9+10=55=(00110111)B
移位后得(00011011)B=(1B)H
我学号的末3位为103=(67)H
则结果为(1B)H+(67)H=(82)H。
2.查看方法:
在“程序代码窗口”范围内单击鼠标右键,选择“读出”项,在相应的内存区间可以看到内存中的结果:
在本例中,数据显示在第4行、第1列(第40H号字节单元内存中)。
3.实际结果:
用读出命令,在程序代码窗口中读出结果——82H,与计算结果一致。
总结
经过此次课程设计,针对老师的各项要求和目标,对于《计算机组成原理》学习的一些内容有了一定程度上的巩固和加深,例如一些基本的代码编写以及简单功能的实现等等,很感谢同学还有老师的讲解。
有不懂的地方还是要和同学一起讨论交流。
我会再接再厉,努力好好学习。