基于COP2000的定点无符号数乘法的实现

玛丽莲梦兔
555次浏览
2020年08月03日 18:45
最佳经验
本文由作者推荐

什么是真正的幸福-幼儿园小班德育总结





课 程 设 计 报 告


课程设计名称:计算机组成原理课程设计
课程设计题目:基于COP2000的定点无符号数乘
法的实现





目 录

第1章 总体设计方案 .................. .................................................. .............................. 1

1.1

设计原理 ......................................... .................................................. ..................... 1

1.2

设计思路 . .................................................. .................................................. ........... 1

1.3

设计环境 ........... .................................................. ............................................... 1

第2章 详细设计方案 ............................ .................................................. .................... 3

2.1

总体方案的设计 .................................................. .................................................. 3

2.1.1总体方案的逻辑图 .......................... .................................................. .............. 4

2.2

功能模块的设计 .... .................................................. ............................................ 5

2.2.1 数据输入模块的设计 .............................. .................................................. ..... 6

2.2.2 乘数末位判断与移位模块的设计 ............. .................................................. .. 6

2.2.3 乘积结果显示模块的设计 ................... .................................................. ........ 7

第3章 程序调试与结果测试 ................ .................................................. .................... 9

3.1

程序调试 . .................................................. .................................................. ......... 9

3.2

结果测试 ............. .................................................. ................................................. 9

参考文献 ................................... .................................................. .................................... 11

附 录(源程序) ........................................... .................................................. ......... 12


-
I
-



第1章 总体设计方案
1.1 设计原理
两个8位无符号数相乘,所乘结果是1 6位,采用原码一位乘,在计算时,用
乘数寄存器的最低位来控制部分积是否与被乘数相加,然后右移部 分积和乘数,
同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘
积 的高位部分,乘数寄存器中保存乘积的低位部分。

1.2 设计思路
被乘数与乘 数都是8位,所以相乘的结果是16位。每个寄存器的范围是8
位,所以乘积的结果用两个寄存器来存储 表示。
实验开始时将实验数据从实验箱的开关输入到R0、R1、R2、R3四个寄存器中,
部分积存放在R0,8位乘数放在R1,8位被乘数放在R2,R3控制乘数与被乘数都
是8位数。在计 算时,首先判断乘数末位上的值是1还是0,决定被乘数是否与
部分积相加,然后判断部分积的末位,因 为右移时部分积的末位会溢出,乘数右
移时要接收由部分积溢出来的数,所以根据判断来决定乘数右移后 的高位是1还
是0。运算结束时16位乘积结果的高8位从R0调出,低8位从R1调出,两个数
据组成最终结果。

1.3 设计环境
本实验采用COP2000实验箱和COP2000仿真软件。
在COP2000试验仪上实 现编程,所应用的编程语言为汇编语言。在伟福试验
仪中有相关的模型机指令集分为几大类:算术运算指 令、逻辑运算指令、移位指
令、数据传输指令、跳转指令、中断返回指令、输入输出指令。
此为COP2000计算机组成原理实验软件截图:


-
1
-




图 1.1 COP2000计算机组成原理集成调试软件

-
2
-



第2章 详细设计方案
2.1 总体方案的设计
(1)初始化以及输入乘数与被乘数
首先是将部分积初始化送到寄存器R0中,乘数放入R1 ,被乘数放入R2。直接
进行到地址LOOP部分。
(2)运算过程
首先从 乘数最低位开始判断,将R1放于寄存器A中并和立即数#01H相与,
此时可以判断乘数最低位是0或 1。基于语句JZ NEXT,当前面的判断结果是0,
跳转到地址NEXT;否则顺序执行程序。 < br>跳转到NEXT,即当程序乘数最低位为0时,将R0不变;顺序执行程序,即
当乘数最低位为1 时,将R0与R2相加,判断最低位是0还是1,当判断结果是0,
跳转到NEXT1,否则顺序执行程 序,所得到的结果送到寄存器R0中,存入数据后
无条件跳转到NEXT2,判断是否是最后一位。 < br>然后进行移位操作。在移位前需要考虑R0的最低位是0或1,因为部分积
移到的数值也是结果的 部分,就是保存在结果低位的部分,也就是寄存器R1中,
所以要保留移掉部分,此时判断R0最低位。 利用语句JZ NEXT1,当前面的判断结
果是0,标志位为1,跳转到地址NEXT1;否则顺序执行程序。
当部分积最低位是1时,右移R0,进行保存;当部分积最低位是0时,右移
R0、R1,进行保存。
每次循环结束都要进入结果输出部分JZ NEXT3。
(3)显示乘积的结果
最 后循环控制程序结束。因为乘法的结果是16位,而此时16位结果的高八
位存放在R0,低八位存放于 R1。显示结果为R0显示的数据加上R1显示的数据。


-
3
-



2.1.1
总体方案的逻辑图

R0 部分积
右移
移位8次
8位加法器
R1 乘数
右移
移位和加控制
加法器
R2 被乘数
OUT 输出结果

图2.1 总体方案的逻辑图



如上逻 辑框图2.1中所示,R0、R1、R2均是8位的寄存器,其中R0存放部
分积的原码,R1存放乘数 的原码,R2存放被乘数的原码。移位和加控制电路受
R1和R0的末位控制(当R1末位是1时,R0 和R2相加;当R1末位是0时,
R0不变。当R0末位是0时,R0和R1右移一位;当R0末位是1 时,R0右移一
位,R1右移一位加10000000)。然后将R0右移移8位加上R1,得到乘法1 6位
结果。










-
4
-




2.2 功能模块的设计
开 始
输入部分积、乘
数和被乘数
Y
部分积与被乘数相加
乘数最低位为1?
N
部分积不变
Y
部分积最低位为1?
N
部分积右移
乘数右移
部分积右移
乘数右移并加10000000
将部分积右移八次加上乘数寄存
器里的数,得到乘积结果
结果输出
循环结束?
Y
结 束
N

图2.2 功能模块设计图

-
5
-




2.2.1 数据输入模块的设计
将部分积初始化送到寄存器R0中,乘数放入R1,被乘数放入R2。应用MOV
R0,#IIH语句将三个数据分别输入到R0、R1、R2。


2.2.2 乘数末位判断与移位模块的设计
(1) 功能描述
判断乘数末位是否为1,应用MOV A,R1和AND A,#01语句,将乘数与1相
与,得出末位结果。然后利用JZ NEXT,如果结果是0,则跳转到地址NEXT;否
则顺序执行程序。
(1)NEXT,即当乘数最低位为0时,R0不变;
(2)顺序执行程序,即当乘数最低位 为1时,将R0与R2相加,所得到的结
果送到寄存器R0中。
在移位前需要考虑R0的最低 位是0或1,因为部分积移到的数值也是结果
的部分,就是保存在结果低位的部分,也就是寄存器R1中 ,所以要保留移掉部分,
此时判断R0最低位。先应用MOV A,R0和AND A,#01,将部分积与1相与,得
出末位结果。 利用JZ NEXT1,当前面的结果是0,跳转到地址NEXT1;否则顺序
执行程序。
当部分积最 低位是1时,右移R0,右移R1加10000000,进行保存;当部分积
最低位是0时,右移R0、 R1,进行保存。

-
6
-



(2)流程图
开 始
乘数最低位为1?
Y
部分积与被乘数相加
N
部分积不变
部分积最低位为1?
Y N
部分积右移
乘数右移并加10000000
部分积右移
乘数右移
结 束
图2.3 乘数末位判断与移位流程图
2.2.3 乘积结果显示模块的设计
(1)功能描述
因为乘法的结果是16位,而此时16位结果的高八位存放在R0,低八位存放

-
7
-



于R1。显示的结果就是R0寄存器与R 1寄存器显示的结果合在一起即为最终的结
果。

(2)乘积结果显示流程图
开始
部分积右移八次加乘数寄存
器上的数得到乘积结果
OUT寄存器输出结果
结 束

图2.4 乘积结果显示流程图


-
8
-



第3章 程序调试与结果测试
3.1 程序调试
(1)在编程开始阶段时候,写数据传送指令时写成了MOV A,00H,本意
是想将立即 数0送到累加器A中,但出现错误。后经查阅书籍应在数据前加#,
才能将立即数送到累加器,所以指令 修改为MOV A,#00H。
(2)实验中想将寄存器R0中的数与寄存器R2中的数相加,所以指令写成
了 ADD R 0,R1。但这样写却没有达到正确的结果。所以修改为先将R0的值送
到累加器A中去,在累加器A中 完成加法运算,然后将结果送回到R0,此为正确
的写法。
(3)在本程序设计思想中,需要 进行将部分积右移,但此时出现的逻辑错误
就是没有考虑加完以后部分积最高位可能出现进位1,当右移 后默认为0,所以产
生的进位1将被移位所丢失掉。
3.2 结果测试
这部分为测试部分,我们分别输入三组数据来进行验证。X为被乘数,Y为
乘数。
(1) [X]= 32H [Y]=95H
X*Y=1D1A 部分积高位R0(1D),低位R1(1A)
(2) [X]=01H [Y]=02H
X*Y=02H 部分积高位R0(00),低位R1(02)
(3) [X]=0B2H [Y]=95H
X*Y=679A 部分积高位R0(67),低位R1(9A)
测试 结果都正确,寄存器R0与寄存器R1中所表示的数据转换化为十进制的
结果都符合,说明程序验证正确 。
下图是测试(1)的软件显示结果:


-
9
-




图3.1 测试(1)结果显示





















-
10
-



参考文献
[1] 唐朔飞. 计算机组成原理(第2版)[M]. 北京:高等教育出版社,2008
[2] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006
[3] 白中英.计算机组成原理(第4版)[M].北京:科学出版社,2008
[4] 王冠.Verilog HDL与数字电路设计[M].北京:机械工业出版社,2005
[5] 江国强.EAD技术习题与实验[M].北京:电子工业出版社,2005
[6] 杜建国.Verilog HDL硬件描述语言[M].北京:国防工业出版社,2004


-
11
-



附 录(源程序)
MOV R0,#00H
MOV R1,#32H
MOV R2,#95H
MOV R3,#08H
LOOP:
MOV A,R1
AND A,#01H
JZ NEXT
MOV A,R0
ADD A,R2
MOV R0,A
AND A,#01H
JZ NEXT1
MOV A,R0
RR A
MOV R0,A
MOV A,R1
RR A
OR A,#80H
MOV R1,A
JMP NEXT2
NEXT1:
MOV A,R0
RR A
MOV R0,A
MOV A,R1
RR A
MOV R1,A
JMP NEXT2
NEXT:
MOV A,R0
AND A,#01H
JZ NEXT1
MOV A,R0
RR A
MOV R0,A
MOV A,R1
RR A

-
12
-


OR A,#80H
MOV R1,A
JMP NEXT2
NEXT2:
MOV A,R3
SUB A,#01H
OR A,#00H
JZ NEXT3
MOV R3,A
JMP LOOP
NEXT3:JMP NEXT3















-
13
-



课程设计总结:
这次的组成原理课程设计使我收获了很多,学到了 很多,同时也发现了自己
的许多不足,这次课设不仅让我巩固了课堂上学习的知识点,理论和实践很好的
结合到了一起,而且还能够延伸我的知识面,锻炼了自学的能力,最重要的是在
做成功的那一刻 让我有一种成就感。其次要感谢老师和同学对我的帮助,帮助我
解决了不少难题,通过阅读一些相关书籍 ,学会了如何存放数据,寄存器左移右
移,如何判断数据的末位是否为1,独立的完成了这次课程设计任 务。
刚看到任务书的时候,是两个8位无符号数相乘,我想到了我们课上学的原
码一位乘,于 是就试着有原码一位乘去做,把书上原码一位乘那节重新看了一遍,
查找了需要用到的指令,经过很多尝 试才做出来,在同学的帮助下解决了遇到的
问题,使得程序成功运行,这不仅让我尝到了成功的喜悦,还 让我明白了要有耐
心和恒心,只要坚持不懈,总会成功的。在反复的思考探索中,我培养了独立思
考的能力,增强了找出问题解决方法的能力。这次课程设计,不仅提高了我的动
手能力,还提高了我的 动脑能力,理论联系实际,使所学的知识不再枯燥乏味,
让我更好地掌握和理解《计算机组成原理》这门 课程。总之,这次课程设计使我
受益匪浅。


指导教师评语:






指导教师(签字): 年 月 日


课程设计成绩


-
14
-





课 程 设 计 报 告


课程设计名称:计算机组成原理课程设计
课程设计题目:基于COP2000的定点无符号数乘
法的实现





目 录

第1章 总体设计方案 .................. .................................................. .............................. 1

1.1

设计原理 ......................................... .................................................. ..................... 1

1.2

设计思路 . .................................................. .................................................. ........... 1

1.3

设计环境 ........... .................................................. ............................................... 1

第2章 详细设计方案 ............................ .................................................. .................... 3

2.1

总体方案的设计 .................................................. .................................................. 3

2.1.1总体方案的逻辑图 .......................... .................................................. .............. 4

2.2

功能模块的设计 .... .................................................. ............................................ 5

2.2.1 数据输入模块的设计 .............................. .................................................. ..... 6

2.2.2 乘数末位判断与移位模块的设计 ............. .................................................. .. 6

2.2.3 乘积结果显示模块的设计 ................... .................................................. ........ 7

第3章 程序调试与结果测试 ................ .................................................. .................... 9

3.1

程序调试 . .................................................. .................................................. ......... 9

3.2

结果测试 ............. .................................................. ................................................. 9

参考文献 ................................... .................................................. .................................... 11

附 录(源程序) ........................................... .................................................. ......... 12


-
I
-



第1章 总体设计方案
1.1 设计原理
两个8位无符号数相乘,所乘结果是1 6位,采用原码一位乘,在计算时,用
乘数寄存器的最低位来控制部分积是否与被乘数相加,然后右移部 分积和乘数,
同时乘数寄存器接收部分积右移出来的一位,完成运算后,部分积寄存器保存乘
积 的高位部分,乘数寄存器中保存乘积的低位部分。

1.2 设计思路
被乘数与乘 数都是8位,所以相乘的结果是16位。每个寄存器的范围是8
位,所以乘积的结果用两个寄存器来存储 表示。
实验开始时将实验数据从实验箱的开关输入到R0、R1、R2、R3四个寄存器中,
部分积存放在R0,8位乘数放在R1,8位被乘数放在R2,R3控制乘数与被乘数都
是8位数。在计 算时,首先判断乘数末位上的值是1还是0,决定被乘数是否与
部分积相加,然后判断部分积的末位,因 为右移时部分积的末位会溢出,乘数右
移时要接收由部分积溢出来的数,所以根据判断来决定乘数右移后 的高位是1还
是0。运算结束时16位乘积结果的高8位从R0调出,低8位从R1调出,两个数
据组成最终结果。

1.3 设计环境
本实验采用COP2000实验箱和COP2000仿真软件。
在COP2000试验仪上实 现编程,所应用的编程语言为汇编语言。在伟福试验
仪中有相关的模型机指令集分为几大类:算术运算指 令、逻辑运算指令、移位指
令、数据传输指令、跳转指令、中断返回指令、输入输出指令。
此为COP2000计算机组成原理实验软件截图:


-
1
-




图 1.1 COP2000计算机组成原理集成调试软件

-
2
-



第2章 详细设计方案
2.1 总体方案的设计
(1)初始化以及输入乘数与被乘数
首先是将部分积初始化送到寄存器R0中,乘数放入R1 ,被乘数放入R2。直接
进行到地址LOOP部分。
(2)运算过程
首先从 乘数最低位开始判断,将R1放于寄存器A中并和立即数#01H相与,
此时可以判断乘数最低位是0或 1。基于语句JZ NEXT,当前面的判断结果是0,
跳转到地址NEXT;否则顺序执行程序。 < br>跳转到NEXT,即当程序乘数最低位为0时,将R0不变;顺序执行程序,即
当乘数最低位为1 时,将R0与R2相加,判断最低位是0还是1,当判断结果是0,
跳转到NEXT1,否则顺序执行程 序,所得到的结果送到寄存器R0中,存入数据后
无条件跳转到NEXT2,判断是否是最后一位。 < br>然后进行移位操作。在移位前需要考虑R0的最低位是0或1,因为部分积
移到的数值也是结果的 部分,就是保存在结果低位的部分,也就是寄存器R1中,
所以要保留移掉部分,此时判断R0最低位。 利用语句JZ NEXT1,当前面的判断结
果是0,标志位为1,跳转到地址NEXT1;否则顺序执行程序。
当部分积最低位是1时,右移R0,进行保存;当部分积最低位是0时,右移
R0、R1,进行保存。
每次循环结束都要进入结果输出部分JZ NEXT3。
(3)显示乘积的结果
最 后循环控制程序结束。因为乘法的结果是16位,而此时16位结果的高八
位存放在R0,低八位存放于 R1。显示结果为R0显示的数据加上R1显示的数据。


-
3
-



2.1.1
总体方案的逻辑图

R0 部分积
右移
移位8次
8位加法器
R1 乘数
右移
移位和加控制
加法器
R2 被乘数
OUT 输出结果

图2.1 总体方案的逻辑图



如上逻 辑框图2.1中所示,R0、R1、R2均是8位的寄存器,其中R0存放部
分积的原码,R1存放乘数 的原码,R2存放被乘数的原码。移位和加控制电路受
R1和R0的末位控制(当R1末位是1时,R0 和R2相加;当R1末位是0时,
R0不变。当R0末位是0时,R0和R1右移一位;当R0末位是1 时,R0右移一
位,R1右移一位加10000000)。然后将R0右移移8位加上R1,得到乘法1 6位
结果。










-
4
-




2.2 功能模块的设计
开 始
输入部分积、乘
数和被乘数
Y
部分积与被乘数相加
乘数最低位为1?
N
部分积不变
Y
部分积最低位为1?
N
部分积右移
乘数右移
部分积右移
乘数右移并加10000000
将部分积右移八次加上乘数寄存
器里的数,得到乘积结果
结果输出
循环结束?
Y
结 束
N

图2.2 功能模块设计图

-
5
-




2.2.1 数据输入模块的设计
将部分积初始化送到寄存器R0中,乘数放入R1,被乘数放入R2。应用MOV
R0,#IIH语句将三个数据分别输入到R0、R1、R2。


2.2.2 乘数末位判断与移位模块的设计
(1) 功能描述
判断乘数末位是否为1,应用MOV A,R1和AND A,#01语句,将乘数与1相
与,得出末位结果。然后利用JZ NEXT,如果结果是0,则跳转到地址NEXT;否
则顺序执行程序。
(1)NEXT,即当乘数最低位为0时,R0不变;
(2)顺序执行程序,即当乘数最低位 为1时,将R0与R2相加,所得到的结
果送到寄存器R0中。
在移位前需要考虑R0的最低 位是0或1,因为部分积移到的数值也是结果
的部分,就是保存在结果低位的部分,也就是寄存器R1中 ,所以要保留移掉部分,
此时判断R0最低位。先应用MOV A,R0和AND A,#01,将部分积与1相与,得
出末位结果。 利用JZ NEXT1,当前面的结果是0,跳转到地址NEXT1;否则顺序
执行程序。
当部分积最 低位是1时,右移R0,右移R1加10000000,进行保存;当部分积
最低位是0时,右移R0、 R1,进行保存。

-
6
-



(2)流程图
开 始
乘数最低位为1?
Y
部分积与被乘数相加
N
部分积不变
部分积最低位为1?
Y N
部分积右移
乘数右移并加10000000
部分积右移
乘数右移
结 束
图2.3 乘数末位判断与移位流程图
2.2.3 乘积结果显示模块的设计
(1)功能描述
因为乘法的结果是16位,而此时16位结果的高八位存放在R0,低八位存放

-
7
-



于R1。显示的结果就是R0寄存器与R 1寄存器显示的结果合在一起即为最终的结
果。

(2)乘积结果显示流程图
开始
部分积右移八次加乘数寄存
器上的数得到乘积结果
OUT寄存器输出结果
结 束

图2.4 乘积结果显示流程图


-
8
-



第3章 程序调试与结果测试
3.1 程序调试
(1)在编程开始阶段时候,写数据传送指令时写成了MOV A,00H,本意
是想将立即 数0送到累加器A中,但出现错误。后经查阅书籍应在数据前加#,
才能将立即数送到累加器,所以指令 修改为MOV A,#00H。
(2)实验中想将寄存器R0中的数与寄存器R2中的数相加,所以指令写成
了 ADD R 0,R1。但这样写却没有达到正确的结果。所以修改为先将R0的值送
到累加器A中去,在累加器A中 完成加法运算,然后将结果送回到R0,此为正确
的写法。
(3)在本程序设计思想中,需要 进行将部分积右移,但此时出现的逻辑错误
就是没有考虑加完以后部分积最高位可能出现进位1,当右移 后默认为0,所以产
生的进位1将被移位所丢失掉。
3.2 结果测试
这部分为测试部分,我们分别输入三组数据来进行验证。X为被乘数,Y为
乘数。
(1) [X]= 32H [Y]=95H
X*Y=1D1A 部分积高位R0(1D),低位R1(1A)
(2) [X]=01H [Y]=02H
X*Y=02H 部分积高位R0(00),低位R1(02)
(3) [X]=0B2H [Y]=95H
X*Y=679A 部分积高位R0(67),低位R1(9A)
测试 结果都正确,寄存器R0与寄存器R1中所表示的数据转换化为十进制的
结果都符合,说明程序验证正确 。
下图是测试(1)的软件显示结果:


-
9
-




图3.1 测试(1)结果显示





















-
10
-



参考文献
[1] 唐朔飞. 计算机组成原理(第2版)[M]. 北京:高等教育出版社,2008
[2] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006
[3] 白中英.计算机组成原理(第4版)[M].北京:科学出版社,2008
[4] 王冠.Verilog HDL与数字电路设计[M].北京:机械工业出版社,2005
[5] 江国强.EAD技术习题与实验[M].北京:电子工业出版社,2005
[6] 杜建国.Verilog HDL硬件描述语言[M].北京:国防工业出版社,2004


-
11
-



附 录(源程序)
MOV R0,#00H
MOV R1,#32H
MOV R2,#95H
MOV R3,#08H
LOOP:
MOV A,R1
AND A,#01H
JZ NEXT
MOV A,R0
ADD A,R2
MOV R0,A
AND A,#01H
JZ NEXT1
MOV A,R0
RR A
MOV R0,A
MOV A,R1
RR A
OR A,#80H
MOV R1,A
JMP NEXT2
NEXT1:
MOV A,R0
RR A
MOV R0,A
MOV A,R1
RR A
MOV R1,A
JMP NEXT2
NEXT:
MOV A,R0
AND A,#01H
JZ NEXT1
MOV A,R0
RR A
MOV R0,A
MOV A,R1
RR A

-
12
-


OR A,#80H
MOV R1,A
JMP NEXT2
NEXT2:
MOV A,R3
SUB A,#01H
OR A,#00H
JZ NEXT3
MOV R3,A
JMP LOOP
NEXT3:JMP NEXT3















-
13
-



课程设计总结:
这次的组成原理课程设计使我收获了很多,学到了 很多,同时也发现了自己
的许多不足,这次课设不仅让我巩固了课堂上学习的知识点,理论和实践很好的
结合到了一起,而且还能够延伸我的知识面,锻炼了自学的能力,最重要的是在
做成功的那一刻 让我有一种成就感。其次要感谢老师和同学对我的帮助,帮助我
解决了不少难题,通过阅读一些相关书籍 ,学会了如何存放数据,寄存器左移右
移,如何判断数据的末位是否为1,独立的完成了这次课程设计任 务。
刚看到任务书的时候,是两个8位无符号数相乘,我想到了我们课上学的原
码一位乘,于 是就试着有原码一位乘去做,把书上原码一位乘那节重新看了一遍,
查找了需要用到的指令,经过很多尝 试才做出来,在同学的帮助下解决了遇到的
问题,使得程序成功运行,这不仅让我尝到了成功的喜悦,还 让我明白了要有耐
心和恒心,只要坚持不懈,总会成功的。在反复的思考探索中,我培养了独立思
考的能力,增强了找出问题解决方法的能力。这次课程设计,不仅提高了我的动
手能力,还提高了我的 动脑能力,理论联系实际,使所学的知识不再枯燥乏味,
让我更好地掌握和理解《计算机组成原理》这门 课程。总之,这次课程设计使我
受益匪浅。


指导教师评语:






指导教师(签字): 年 月 日


课程设计成绩


-
14
-

一人我饮酒醉歌词-事业单位年度考核表


广州工商学院-十八大三中全会精神


岳王庙-保险公司年终总结


全国三本大学排名-师德师风学习体会


内蒙考试信息网-东北大学录取分数线


哈尔滨东方学院-开业贺信


我的大学梦-朱自清散文读后感


机械专业大学排名-警务硕士