v1.0 可编辑可修改 石家庄经济学院
华信学院
计算机组成原理课程设计报告
计算数据块中所有数据的累加和并存储到内存单元中
题 目 16位模型机的设计 姓 名 学 号 01 班 号 一 班 指导老师 成 绩
2014年1月
11
v1.0 可编辑可修改 目 录
一、引言........................................................................................................................................... 3
设计目的 ................................................................................................................................... 3 设计任务 ................................................................................................................................... 3 二、 详细设计及实现 ..................................................................................................................... 4
拟定指令系统 ........................................................................................................................... 4 指令格式 ................................................................................................................................... 6 寻址方式 ................................................................................................................................... 6 三、16位CPU的模型 .................................................................................................................... 10
各功能部件的VHDL设计 ....................................................................................................... 12 16位模型机的设计与实现 .................................................................................................... 27 四、总结......................................................................................................................................... 32 五、参考文献: ............................................................................................................................. 32 六、 代码....................................................................................................................................... 33
22
v1.0 可编辑可修改 一、引言
设计目的
为掌握并巩固本学期所学习的计算机组成原理知识,设计本次试验。运用整合所学的相关知识,一步步设计构造一台基本的模型计算机,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。
设计任务
本机功能:计算数据块中所有数据的累加和并存储到内存单元中。
汇编代码如下:
START: MOV SI, OFFSET SRC1 ;源操作数地址送SI
MOV DI,OFFSET DXT ;目的操作数地址送DI MOV BX,OFFSET SRC2 ;结束地址送BX MOV BL 0 ;设置BL中初值为0
NEXT: MOV AL,[SI] ;取数
ADD BL , AL ; 数据相加 MOV [DI],AL ;存数 CMP JE INC
SI, BX ;
START ;如果SI=BX,则转向START SI ;修改源地址
JMP NEXT ;转向NEXT
33
v1.0 可编辑可修改
二、 详细设计及实现
拟定指令系统
分析:
1) 依据汇编语言程序得出部件间的数据流的方向为
立即数→寄存器
寄存器?内存 内存操作数采用寄存器间址寻址方式 源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提供
寄存器加1指令
无条件转移指令,转向地址在指令中提供。 2) 指令类型 (指令中的立即数为一个字即16位)
立即数→寄存器
需要在指令中指出寄存器及立即数 如:LOADI R0,10H,此指令为双字指令 内存操作数→寄存器
需要在指令中指出间址寄存器及目的寄存器 如:LOAD R3,[R1]; 指令为单字指令 寄存器→内存
需要指令中指出源寄存器及间址寄存器 如:STORE [R2],R7; 指令为单字指令 寄存器内容比较产生转移的指令
需要指令中指出源、目的寄存器以及转向的地址 如:BRANCHEQI 0000H; 指令为单字指令
44
v1.0 可编辑可修改 寄存器加1指令 指令中指出寄存器
如: INC R1,指令为单字指令 无条件转移指令 指令中提供转向地址
如:BRANCHI 0008H; 指令为单字指令
55