1、计算机组成原理课程设计实验报告学生姓名: 专 业: 学 号: 班 级: 指导教师: 2012 年 6 月 28 日一、实验时间: 2012/6/25-2012/6/28二、实验地点: 信工楼 309三、实验题目:1、编写程序将 11H、12H、1FH 等数存入从 11H 开始到1FH 的连续存储空间,然后将这些数按相反的顺序存储到从 21H 开始到 2FH 的连续存储空间中。2、采用模型机指令系统编写程序完成 1 到 5 的阶乘之和,将结果存放在指定的寄存器中。3、给 R0、R1、R2、R3 各赋一初值,然后对它们进行一系列算术/逻辑运算,观察各寄存器的变化情况。4、给 R0、R1、R2、R3
2、 各赋一初值,然后对它们同立即数进行一系列算术/逻辑运算,观察各寄存器的变化情况。5、给 R0、R1、R2、R3 各赋一初值,然后对它们进行一系列移位循环操作,观察各寄存器的变化情况。四、实验目的:1、通过实验例程,熟悉软件的操作。2、熟悉模型机的指令系统,理解并掌握各条指令的功能和用途。3、利用该指令系统,自行编写小程序,调试并运行。五、实验装置组成:(一)硬件部分实验装置是为计算机组成原理的工作流程专门设计的。它能够让学生通过手动和自动的操作弄清和掌握计算机工作的基本原理。实验模块由手动实验部分和程序实验部分组成。手动实验主要完成计算机各个组成部分的原理实验,包括数据流程、运算器执行、存储
3、器和外设之间的数据交换等部分,通过组合变化各个输入信号,进一步理解计算机各个部件的执行过程和工作原理,手动实验在本指导书的前面部分已经作了详细介绍。程序实验主要完成指令系统中每条指令的具体执行,包括取指、译码、执行过程中对应微指令的工作流程,并且还能观察各类指令执行的结果。操作过程在计算机上进行,可实现单拍、单步和连续执行,每个执行过程可以在计算机上显示,其执行结果和过程也可同步在实验板上显示,进一步观察对应指令在执行过程中的每个控制信号和数据流向。(二)软件部分软件系统由编辑程序、编译程序、程序执行、调式程序几个部分组成,完成由源程序输入、语法分析排错、指令汇编、应用程序调试的全过程。软件系
4、统采用集成化的窗口,各种软件功能分类设置在程序中,可以根据程序实验过程的需要随意组合使用。软件系统的主窗口界面如下图所示:六、软件使用说明:图 7-2 界面说明标识软件系统采用集成化的窗口,各种软件功能分类设置在程序中,软件系统的主窗口界面如上图所示,现将界面各组成部位说明如下:1 寄存器 在程序执行过程中,观察各寄存器的值2 存储器 在程序执行过程中,观察各存储器的值3 信息 显示当前指令对应的微程序4 编辑源程序 从汇编状态或运行状态返回到编辑源程序状态5 汇编 对编辑好的源程序进行汇编连接6 程序复位 让程序指针指向程序的第一条指令7 运行 运行已通过汇编连接的程序8 停止 停止程序的运
5、行9 单步 单步运行程序(逐条指令执行)10 单拍 单拍运行程序(逐条微指令执行)11 设置/取消断点 设置/取消断点,调试程序时用12 连接/断开串行口 连接/断开串行口,连通/断开程序和模型机通信13 源程序编辑区 在该区域内编辑源程序14 寄存器/存储器显示区 显示各寄存器/存储器的值15 微程序显示区 显示当前指令对应的微程序七、指令系统汇编:(一)模型机指令系统指令格式 指令序号 类型 汇编助记符操作码 源 目 第二字节 长度状态位 注 释1 ADD RD,RS 0001 RS RD 1 Z,C,E,V,N RD (RD)+(RS)2 ADC RD,RS 0010 RS RD 1 Z
6、,C,E,V,N RD (RD)+(RS)+CY3 SUB RD, RS 0011 RS RD 1 Z,C,E,V,N RD (RD)-(RS)4 SBC RD,RS 0100 RS RD 1 Z,C,E,V,N RD (RD)-(RS)-CY5 MUL RD,RS 0101 RS RD 1 Z,C,E,V,N RD (RD)*(RS)6 AND RD,RS 0110 RS RD 1 Z RD (RD)and(RS)7 OR RD,RS 0111 RS RD 1 Z RD (RD)or(RS)8算逻运算 一类9 ADD RD,#IMM 101000 #IMM RD #IMM 2 Z,C,E,V
7、,N RD (RD)+#IMM10 ADC RD,#IMM 101001 #IMM RD #IMM 2 Z,C,E,V,N RD (RD)+#IMM+CY11 SUB RD,#IMM 101010 #IMM RD #IMM 2 Z,C,E,V,N RD (RD)-#IMM12 SBC RD,#IMM 101011 #IMM RD #IMM 2 Z,C,E,V,N RD (RD)-#IMM-CY13 CMP RD,#IMM 101100 #IMM RD #IMM 2 Z,C,E,V,NPWS( RD)-#IMM,比较不改变寄存器14 AND RD,#IMM 101101 #IMM RD #IMM
8、 2 Z RD (RD)AND #IMM15 OR RD,#IMM 101110 #IMM RD #IMM 2 Z RD (RD) OR #IMM16 MOV RD,#IMM 101111 #IMM RD #IMM 2 Z RD-#IMM17算逻运算 二类18 SRR RD 100000 RD 1 Z,C 右一位,带进位位循环19 SRL RD 100001 RD 1 Z,C 左一位,带进位位20 CLR RD 100010 RD 1 Z 清零21 COM RD 100011 RD 1 Z,C 取反操作22 INC RD 100100 RD 1 Z RD RD+123 DEC RD 10010
9、1 RD 1 Z RD RD-124移位循环 三类25 26 LD RD,MEM 110000 RD MEM 2 直接寻址,RDMEM27 ST MEM,RS 110010 RS MEM 1 直接寻址,MEMRS28 LD RD,(MEM) 110001 RD MEM 2 间接寻址,RD(MEM)29 ST (MEM),RS 110011 RS MEM 2 间接寻址,(MEM)RS30 IN RD,PORT 110100 RD PORT 2 将数据输入接口输入到RD31 OUT PORT,RS 110101 RS PORT 2 将 RS 数据输出到数据接口32 MOV RD,RS 110110
10、 RD R0 1 寄存器寻址,RD (R0)33传数类指令 四类34 JNZ ADDR 11101000 ADDR 2 结果不为零,转移35 JZ ADDR 11101001 ADDR 2 结果为零,转移36 JNC ADDR 11101010 ADDR 2 进位不为零,转移37 JC ADDR 11101011 ADDR 2 进位为零,转移38 JNE ADDR 11101100 ADDR 2 不等,转移39 JE ADDR 11101101 ADDR 2 相等,转移40 JO ADDR 11100110 ADDR 2 溢出,转移41 JNO ADDR 11100111 ADDR 2 溢出,
11、转移42 43转移类指令 五类JMP ADDR 11110001 ADDR 2 转移44 45 46 NOP 11110100 空操作47 48 49其它HALT 11111111 停机操作(二)模型机指令码1、指令码7 6 5 4 3 2 1 0双寄存器运算 操作码 源寄存器 的寄存器ADD ADC SUB SBC 0 x x x rs rd一类MUL AND MUL MOV 7 6 5 4 3 2 1 0其他指令操作码 的寄存器SHR SRL ROL RCR 1 0 0 X X X rd二类DEC INC PUSH POP 7 6 5 4 3 2 1 0寄存器与立即数运算操作码 的寄存器A
12、DD ADC SUB SBC 1 0 1 X X X rd三类CMP AND OR MOV IMM7 6 5 4 3 2 1 0传数类指令操作码 的寄存器MOV MOV MOV MOV 1 1 0 X X X rd四类IN OUT (MEM) / (MEM)7 6 5 4 3 2 1 0转移类指令操作码JNZ JNC JNE JNV DISP 1 1 1 X X X X XJZ JC JE JV ADDR DISP / ADDRCALL JMP JMP 五类HALT NOP 2、寄存器和状态位说明序号 rd,rs 寄存器名1 00 R0 7 6 5 4 2 1 02 01 R1 N E V C
13、 Z3 10 R2状态位(PWS)负数 等 溢出 进位 零4 11 R33、数据格式7 6 5 4 2 1 0#IMM,DISP 相对转移 符号 尾数八、实例程序及题目内容:例程 3给 R0、 R1、 R2、R3 各赋一初值,然后对它们进行一系列移位循环操作,观察各寄存器的变化情况。Exmp3.asmMOV R0,#05HMOV R1,#06HMOV R2,#07HMOV R3,#08HSRR R0SRL R1CLR R2COM R3INC R2DEC R1L1: JMP L1实验结果:例程 4给 R0、 R1、 R2、R3 各赋一初值,然后对它们与相应的存储器单元进行一系列数据传输操作,观察
14、各寄存器以及相应存储器单元的变化情况。Exmp4.asmMOV R0,#05HMOV R1,#06HMOV R2,#07HMOV R3,#08HST 10H,R0LD R1,10HST (11H),R2LD R3,(11H)IN R0,12HOUT 13H,R2MOV R3,R1L1: JMP L1实验结果:例程 5给 R0、 R1、 R2、R3 各赋一初值,然后对它们进行一系列可以改变状态位的操作,进而执行一系列转移类指令,观察程序执行流程。Exmp5.asmL4: MOV R0,#05HMOV R1,#06HMOV R2,#0FEHMOV R3,#08HCLR R3JZ L1L2: CMP
15、 R1,#07JNE L3L1: SUB R0,#06HJC L2L3: ADD R2,#05HJO L4L5: JMP L5实验结果:题目设计:3、编写程序将 11H、12H、1FH 等数存入从 11H 开始到 1FH 的连续存储空间,然后将这些数按相反的顺序存储到从 21H 开始到 2FH 的连续存储空间中。MOV R0,#11HL1: ST 10H,R0INC R0CMP R0,#1EHJNE L1MOV R0,#11HMOV R1,#2FHL2: ST 15H,R0ST 20H,R1LD R2,(10H)DEC R1INC R0CMP R0,#1EHJNE L2L3: JMP L3 实验结果:4、采用模型机指令系统编写程序完成 1 到 5 的阶乘之和,将结果存放在指定的寄存器中。MOV R0,#05HMOV R1,#06HMOV R2,#07HMOV R3,#08HADD R1,R0SUB R1,R2MUL R2,R3AND R3,R1OR R2,R0L1: JMP L1实验结果:九、实验小结:通过这次的实验课程,我了解到了计算机基础的重要性。 并且进一步加深了对计算机基础的认识。让我知道了自己还有许多不足的地方, 以后要多加练习,把学到的知识多加巩固。让我知道了学好计算机基础这门课程是必要的。