计算机组成原理课程设计 - 图文

更新时间:2024-01-07 09:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华中科技大学文华学院

计算机组成原理

课程设计

学 部: 信息科学与技术学部 专 业: 软件工程 班 级: 2班

学 号: 090107021115 姓 名: 龙韵阗 指导老师: 袁全清

目录

一、课设目的 ........................................................................................................................... 3 二、课设任务 ........................................................................................................................... 3 三、使用的设备及软件 ........................................................................................................... 3

设备 ................................................................................................................................... 3 软件 ................................................................................................................................... 3 四、设备连接 ........................................................................................................................... 4 五、编程题目 ........................................................................................................................... 4 六、程序流程图 ....................................................................................................................... 5 七、程序 ................................................................................................................................... 5 八、程序每条指令对应的机器代码和对应的微指令 ........................................................... 7 九、调试过程 ........................................................................................................................... 8 十、结果 ................................................................................................................................. 12 十一、总结 ............................................................................................................................. 12

2

一、课设目的

通过课程设计更清楚地理解下列基本概念: 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

3.程序编译:编译是检查源文件的语法错误,如果源文件没有语法错误,编译器将生成源文件的目标代码,由于是单汇编文件,编译产生的目标代码可以直接加载调试。用户选择“编译——编译当前文件”菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。用户可以根据输出窗口中错误信息直接定位到源文件的相应位置。

4.程序运行:加载后,可以运行程序,有三种运行方式:

① 微单步:每执行一条微程序,PC指针加1,微指令向后移动一步,同时结构图中绘出执行步及上一步的数据流向,各个寄存器和控制线状态会相应改变。

② 程序单步:从当前PC指针行执行源文件的一行语句,然后又停止。结构图中显示的寄存器值和控制线都会随之刷新,但不显示数据流。

③ 全速运行:全速运行程序,遇到用户断点或按暂停键或执行到halt指令停止。

四、设备连接

实验过程中的设备连接包括3部分的内容: 1.数据总线的连接: 接口1 接口2 DJ1 ALU_IN DJ2 ALU_OUT DJ3 R_IN DJ4 R_OUT DJ5 RA_IN DJ6 RA_OUT DJ7 PC_IN PC_OUT AJ1 2.各模块的连线:由于实验平台提供了连线板,在实验时,只要将连线板插在指定的地方,这样,各个模块就成功的连接了。

3.与计算机的连线:实验平台提供的连接线将实验平台与计算机相连,这样,计算机通过软件可以和平台相互通讯。

五、编程题目

从1加到10,再带进位右移一位,最后,再加上自已学号的后三位,结果存放到RAM的40H号字节单元中。

4

六、程序流程图

开始 A=0 R0=10 A=A+R0 R0-- N R0>0 ? Y A>>1 A=A+73 将A存入内存 结束

七、程序

根据程序流程图所示,可以进行代码的编写: MOV R0,#0A MOV A,#0 MOV R3,#1 MOV R1,#1 ADD A,R3 MOV R2,A MOV A,R3 SUB A,R0 JZ 14

MOV A,R3

5

ADD A,R1 MOV R3,A MOV A,R2 JMP 08 MOV A,R2 STA 20 RRC A STA 30

MOV R0,#73 ADD A,R0 STA 40 HALT

6

八、程序每条指令对应的机器代码和对应的微指令

指令 MOV R0,#0A MOV A,#0 MOV R3,#1 ADD A,R3 机器代码 6E 0A 5F 00 6C 01 0C 微指令 取指指令 Dbus->Ri 取指指令 Dbus->Ri 取指指令 Dbus->Ri 取指指令A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A 取指指令A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A 取指指令 Dbus->A 取指指令 A->Dbus->Ri 取指指令 Ri->Dbus->IR2 (IR2)->Abus,Dbus->A 取指指令A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A 取指指令A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A 取指指令 取指指令A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A 取指指令 A>>1 取指指令 微代码 DDBFFF 4DFFFF DDFBFF 4DFFFF DDBFFF 4DFFFF FFFCF9 FF7F79 FFFBA9 4DFFFF 7FBDFF 4DFFFF MOV R2,A 4D MOV A,R3 SUB A,R0 3C 1E FF7BFF 4DFFFF FFFCD6 FE7F56 FFFB86 4DFFFF D4FFFF 7FBDFF 4DFFFF JZ 14 MOV R3,A B3 14 4C MOV A,R2 3D FF7BFF 4DFFFF JMP 08 MOV A,R2 BF 06 3D FF7BFF 4DFFFF RRC A MOV R0,#73 9F 6C 73 FFFEF1 4DFFFF DDBFFF 4DFFFF ADD A,R0 0C 8F 取指指令A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A 取指指令 A->Dbus->DR1 Ri->Dbus->DR1 ALU->Dbus->A FFFCF9 FF7F79 FFFBA9 4DFFFF D5FFFF BBFDFF 4DFFFF STA 40 0C 8F 九、调试过程

1.全速执行:

全速执行可以一次性使所有的代码执行完毕,从而得出最终的结果。此过程一般用于代码准确无误之后的执行,其步骤为:单击菜单“调试”项,选择“全速执行”,最后可以看到最终的结果。在执行的过程中,实验平台上的指示灯不断地闪烁,是由于每一条微指令都对应着不同的指示灯的明暗情况。 2.程序单步:

程序单步用于调试使用,每一次执行一条指令,其步骤为:单击菜单“调试”项,选择“程序单步”,可以看到指令序列上的亮条纹移动了一条指令。在执行的过程中,实验平台上的指示灯不断地闪烁,是由于一条指令对应着多条微指令,每一条微指令都对应着不同的指示灯的明暗情况。

8

3.微单步:

微单步可以将每一条指令包含的微指令分步执行,其步骤为:单击菜单“调试”项,选择“微单步”,可以从结构图窗口中看到每一条微指令执行的操作。在实验平台上,可以看到指示灯的对应不同微指令的不同明暗变化。

例如:“SUB A,R2”对应的微指令序列为: ① 取指令

② A->BUS->DR1 ③ R2->BUS->DR2 ④ ALU->BUS->A

9

微单步:

10

11

十、结果

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个学时的计算机组成原理课程设计结束了,我受益匪浅。首先是在此次课程设计中,最大的收获就是在出现问题后寻找解决的办法,这一点锻炼了自己的学习能力,每次出现新问题,自己总会先照着软件上面程序运行的流程找找问题,然后跟同学讨论找出最终的解决方案。其次,我认识到在设备的连接过程中,数据总线的连接需要很仔细,不能出错,否则机器将无法正常执行。同时还认识到,程序的执行不是“程序编辑窗口”中所编辑的指令,而是经过编译后被加载了的指令。最后,我也要衷心感谢袁老师的指导,正是在老师的指引和帮助下,让我学习到更多的专业知识。

12

《计算机组成原理》

课 程 设 计 报 告

学 号: 090107011103 姓 名: 程华政 专业班级: 软件工程01班 指导教师: 袁 全 清

设计时间:2012年3月7日-2012年3月16日

13

课设目的:

通过课程设计更清楚地理解下列基本概念: 1、计算机的硬件基本组成; 2、计算机中机器指令的设计; 3、计算机中机器指令的执行过程; 4、微程序控制器的工作原理; 5、微指令的格式设计原理。

6、通过使用软件HKCPT,了解程序编译、加载的过程。 7、通过微单步、单拍调试,理解模型机中的数据流向。

课设任务

1、在掌握各模块功能的基础上,构成模型机;

2、熟悉模型机的通路、微指令系统、与汇编指令的关系; 3、使用微机与模型机连接调试的应用程序HKCPT; 4、编辑程序,了解程序编译、加载及运行的过程。

使用的设备及软件: 设备

此次课设使用HK-CPT-IV型计算机组成原理实验平台,实验平台简介如下:

1.基本功能模块:运算器模块、指令部件模块、堆栈寄存器模

14

块、存储器模块、总线传输模块、微程序模块、启停和时序模块,以及用于调试和观察数据的监控模块。

2.组成结构:采用总线结构。总线分为:内部、外部地址总线,内部、外部数据总线。

3.监控模块:为实验调试和程序设计带来了相当的便利。实验者可以通过监控模块来修改微程序和内存中的程序。

4.操作方式 : 单机方式——整个系统可单独使用;联机方式——系统可与PC机相连。

软件

此次课设使用的软件为HKCPT,其使用介绍如下:

1.启动HKCPT:第一次启动HKCPT,用户需设置实验平台通讯端口。退出HKCPT时,会自动保存用户最后一次的设置。用户选择“设置——实验平台”菜单项,在弹出的对话框中,选择相应的通讯串口、通讯波特率和延时因子。点击确定按钮,即可使用。

2.程序编写:选择“文件—新文件”菜单项,将新建一个空的编辑窗口。用户在编辑窗口中输入以下程序。输入完毕,选择“文件—另存为”菜单项,把该文件保存为demo.asm。因为编译器支持长文件名,用户也可以把该文件保存在如“我的文档”之类的目录夹中。用户可以直接选择“文件—打开”菜单项打开该文件。

3.程序编译:编译是检查源文件的语法错误,如果源文件没有语法错误,编译器将生成源文件的目标代码,由于是单汇编文件,编

15

译产生的目标代码可以直接加载调试。用户选择“编译——编译当前文件”菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。用户可以根据输出窗口中错误信息直接定位到源文件的相应位置。

4.程序运行:加载后,可以运行程序,有三种运行方式: ① 微单步:每执行一条微程序,PC指针加1,微指令向后移动一步,同时结构图中绘出执行步及上一步的数据流向,各个寄存器和控制线状态会相应改变。

② 程序单步:从当前PC指针行执行源文件的一行语句,然后又停止。结构图中显示的寄存器值和控制线都会随之刷新,但不显示数据流。

③ 全速运行:全速运行程序,遇到用户断点或按暂停键或执行到halt指令停止。

设备连接

实验过程中的设备连接包括3部分的内容: 1.数据总线的连接: 接口1 接口2 ALU_IN ALU_OUT R_IR_OUT RA_IN RA_OUPC_IN T N DJ1 DJ2 DJ3 DJ4 DJ5 DJ6 DJ7 PC_OUT AJ1 16

2.各模块的连线:由于实验平台提供了连线板,在实验时,只要将连线板插在指定的地方,这样,各个模块就成功的连接了。

3.与计算机的连线:实验平台提供的连接线将实验平台与计算机相连,这样,计算机通过软件可以和平台相互通讯。

编程题目

从1加到10,再带进位右移一位,最后,再加上自已学号的后三位,结果存放到RAM的40H号字节单元中。

程序流程图

寄存器分配:

1.用用R0作为计数器,判断是否退出循环; 2.R1储存每一步计算得到的结果; R2是每一次R0减小的数,即固定为1 具体流程图如下图所示:

17

开始 A=0 R0=10 A=A+R0 R0-- N R0>0 ? Y A>>1 A=A+7B 将A存入内存 结束

程序

根据程序流程图所示,可以进行代码的编写:

18

MOV R2,#1 MOV A,#0 MOV R0,#A ADD A,R0 MOV R1,A MOV A,R0 SUB A,R2 JZ 0F

MOV R0,A MOV A,R1 JMP 06 MOV A,R1 RRC A MOV R0,#7B ADD A,R0 STA 40 HAL

程序每条指令对应的机器代码和对应的微指令

指令 MOV R2,#1 MOV R0,#A 机器代码 6E 01 微指令 取指指令Dbus->Ri 取指指令Dbus->Ri 取指指令Dbus->Ri 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A 取指指令Dbus->A 取指指令A->Dbus->Ri取指指令Ri->Dbus->IR2(IR2)->Abus,Dbus->A 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A 取指指令 微代码 DDBFFF4DFFFF DDFBFF4DFFFF DDBFFF4DFFFF FFFCF9FF7F79FFFBA94DFFFF MOV A,#0 5F 00 6C 0A ADD A,R0 0C MOV R1,A 4D MOV A,R0 3C SUB A,R2 1E JZ 0F B3 0F 7FBDFF4DFFFF FF7BFF4DFFFF FFFCD6FE7F56FFFB864DFFFF D4FFFF 7FBDFF4DFFFF MOV R0,A 4C MOV A,R1 3D JMP 06 BF 06 FF7BFF4DFFFF MOV A,R1 3D RRC A MOV R0,#7B 9F 6C 7B 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A 取指指令A>>1 取指指令 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A 取指指令A->Dbus->DR1Ri->Dbus->DR1ALU->Dbus->A FF7BFF4DFFFF FFFEF14DFFFF DDBFFF4DFFFF FFFCF9FF7F79FFFBA94DFFFF D5FFFFBBFDFF4DFFFF ADD A,R0 0C 8F STA 40 0C 8F

调试过程

1.全速执行:

全速执行可以一次性使所有的代码执行完毕,从而得出最终的结果。此过程一般用于代码准确无误之后的执行,其步骤为:单击菜单“调试”项,选择“全速执行”,最后可以看到最终的结果。在执行的过程中,实验平台上的指示灯不断地闪烁,是由于每一条微指令都对应着不同的指示灯的明暗情况。 2.程序单步:

程序单步用于调试使用,每一次执行一条指令,其步骤为:单击菜单“调试”项,选择“程序单步”,可以看到指令序列上的亮条纹移动了一条指令。在执行的过程中,实验平台上的指示灯不断地闪烁,是由于一条指令对应着多条微指令,每一条微指令都对应着不同的指示灯的明暗情况。

20

3.微单步:

微单步可以将每一条指令包含的微指令分步执行,其步骤为:单击菜单“调试”项,选择“微单步”,可以从结构图窗口中看到每一条微指令执行的操作。在实验平台上,可以看到指示灯的对应不同微指令的不同明暗变化。

例如:“SUB A,R2”对应的微指令序列为: ① 取指令 ② A->BUS->DR1 ③ R2->BUS->DR2 ④ 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.查看方法:

21

在“程序代码窗口”范围内单击鼠标右键,选择“读出”项,在相应的内存区间可以看到内存中的结果:在本例中,数据显示在第4行、第1列(第40H号字节单元内存中)。

3.实际结果:

用读出命令,在程序代码窗口中读出结果——82H,与计算结果一致。

总结

经过此次课程设计,针对老师的各项要求和目标,对于《计算机组成原理》学习的一些内容有了一定程度上的巩固和加深,

22

例如一些基本的代码编写以及简单功能的实现等等,很感谢同学还有老师的讲解。有不懂的地方还是要和同学一起讨论 交流 。我会再接再厉,努力好好学习。

23

本文来源:https://www.bwwdw.com/article/xq6x.html

Top