计算机组成原理 广东海洋大学 实验

合集下载

计算机组成原理实习日志

计算机组成原理实习日志

GDOU-B-11-110广东海洋大学学生实习日志环节名称计算机组成原理微程序设计学院(系)信息学院专业名称计算机科学与技术使用班级1141姓名邓超荣、邓周光、何涛学号10、11、14实习地点科技楼503起止时间2016.6.6——2016.6.10广东海洋大学教务处制第 1 天共 5 天日期2016年 6 月 6 日应到人数 3 实到人数 3实习情况实习内容确定课程设计方向、要求、目的、实验步骤以及需要准备的材料,人员的分工等工作实习要求要求熟读这次的课程设计要求文档、计算机组成原理PPT以及TEC-9教师实验指导书任务完成情况已确定目标方向与各项工作安排其它需说明的情况无记录人:何涛指导教师:刘桃丽注:本表按实习的实际需要自行复印填写,实习结束后装订成册交课程所在学院。

集中实日期2016年 6 月7 日应到人数 3 实到人数 3实习情况实习内容搜集资料、查阅各种工具书并了解TEC-9的操作与计算机组成的原理这对后面的实操起打基础的作用实习要求掌握计算机微指令系统的运行过程与微指令的设计方法任务完成情况已掌握基本的设计微指令知识其它需说明的情况无记录人:指导教师:注:本表按实习的实际需要自行复印填写,实习结束后装订成册交课程所在学院。

集中实日期2016年 6 月8 日应到人数 3 实到人数 3实习情况实习内容开始动手设计微程序要实现的功能以及流程图实习要求要求熟读这次的课程设计要求文档、计算机组成原理PPT 以及TEC-9教师实验指导书。

任务完成情况要实现的功能已通过流程图显示出来其它需说明的情况无记录人:何涛指导教师:刘桃丽注:本表按实习的实际需要自行复印填写,实习结束后装订成册交课程所在学院。

集中实日期2016年 6 月9 日应到人数 3 实到人数 3实习情况实习内容设计好六条微指令(ADD,SUB,AND,异或,逻辑或,INC)的代码表实习要求熟悉TEC-9的数据通路,以及每条运算的取指和执行的过程,还要弄懂微指令的格式(一条微指令对应的40位的每一位的含义)任务完成情况微指令设计完毕其它需说明的情况无记录人:何涛指导教师:刘桃丽注:本表按实习的实际需要自行复印填写,实习结束后装订成册交课程所在学院。

计科1141广东海洋大学java10(实验4)解答

计科1141广东海洋大学java10(实验4)解答

广东海洋大学学生实验报告书(学生用表)实验名称实验四.类的基本编程课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.26一实验目的:掌握Java类的基本知识及应用二实验内容:定义一个名为Complex的类实现复数概念及运算,它的UML图如下,先实现该类的相关方法,再试编写主方法来测试该类这些的方法。

GDOU-B-11-112代码:public class ComplexDemo {public static void main(String[] args) {Complex c1 = new Complex(1,2);Complex c2 = new Complex(2,3);Complex c3 = new Complex(4,-2);double c = -2;Complex sum = new Complex();sum = plexAdd(c1,c2);System.out.println("(1+2i)+(2+3i)="+sum);sum = plexAdd(c1, c);System.out.println("(1+2i)+(-2)="+sum);sum = plexAdd(c1,c2,c3);System.out.println("(1+2i)+(2+3i)+(4-2i)="+sum);Complex mid = new Complex();mid = plexMinus(c1,c2);System.out.println("(1+2i)-(2+3i)="+mid);mid = plexMinus(c1, c);System.out.println("(1+2i)-(-2)="+mid);Complex mul = new Complex();mul = plexMul(c1,c2);System.out.println("(1+2i)*(2+3i)="+mul);mul = plexMul(c1, c);System.out.println("(1+2i)*(-2)="+mul);mul = plexMul(c1,c2,c3);System.out.println("(1+2i)*(2+3i)*(4-2i)="+mul);}}class Complex {double realPart;double imaginaryPart;Complex(){} //默认构造函数Complex(double r,double i) { //带参数的构造函数realPart = r;imaginaryPart = i;}double getRealPart() { //返回实部return realPart;}void setRealPart(double d) { //设置实部realPart = d;}double getImaginaryPart() { //返回虚部return imaginaryPart;}void setImaginaryPart(double d) { //设置虚部imaginaryPart = d;}Complex complexAdd(Complex c1,Complex c2) { //复数对象与复数对象相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart;return sum;}Complex complexAdd(Complex c1,double c2) { //复数对象与实数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2;sum.imaginaryPart = c1.imaginaryPart;return sum;}Complex complexAdd(Complex c1,Complex c2,Complex c3) { //三个复数相加Complex sum = new Complex();sum.realPart = c1.realPart + c2.realPart +c3.realPart;sum.imaginaryPart = c1.imaginaryPart +c2.imaginaryPart + c3.imaginaryPart;return sum;}Complex complexMinus(Complex c1,Complex c2) { //复数对象与复数对象相减Complex mid = new Complex();mid.realPart = c1.realPart - c2.realPart;mid.imaginaryPart = c1.imaginaryPart -c2.imaginaryPart;return mid;}Complex complexMinus(Complex c1,double c2) { //复数对象与实数相减Complex mid = new Complex();mid.realPart = c1.realPart - c2;mid.imaginaryPart = c1.imaginaryPart;return mid;}Complex complexMul(Complex c1,Complex c2) { //复数对象与复数对象相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;return mul;}Complex complexMul(Complex c1,double c2) { //复数对象与实数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2;mul.imaginaryPart = c1.imaginaryPart * c2;return mul;}Complex complexMul(Complex c1,Complex c2,Complex c3) { //三个复数相乘Complex mul = new Complex();mul.realPart = c1.realPart * c2.realPart -c1.imaginaryPart * c2.imaginaryPart;mul.imaginaryPart= c1.realPart* c2.imaginaryPart + c1.imaginaryPart * c2.realPart;double r = mul.realPart;double i = mul.imaginaryPart;mul.realPart = r * c3.realPart - i *c3.imaginaryPart;mul.imaginaryPart = r * c3.imaginaryPart + i *c3.realPart;return mul;}public String toString() { //以a+bi的形式显示复数String s = new String();if(realPart!=0){if(imaginaryPart>0) {s = (int)realPart + "+" + (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf((int)realPart);}else{s= (int)realPart+ ""+ (int)imaginaryPart+ "i";}}else{if(imaginaryPart>0) {s = (int)imaginaryPart + "i";}else if(imaginaryPart==0) {s = String.valueOf(0);}else{s = (int)imaginaryPart + "i";}}return s;}}。

广东海洋大学操作系统.实验(2)

广东海洋大学操作系统.实验(2)

班级:计科1141 学号:201411621110 姓名:邓超荣实验二进程间通信(信号量)实验目的了解信号量在进程控制中所起的重要作用。

实验内容父子两个进程共同完成递增正整数序列(1\2\3\4\5\6\7\8\9\10\11\12\13\14\15\16……100)的显示。

其中一个进程负责显示奇数,另一个进程显示偶数。

请分别编写“不带有信号量不能完成上述任务”和“使用信号量正确完成上述任务”的程序,观察实验结果,进行细致分析。

(1)不带有信号量不能完成上述任务1:#include <stdio.h>2:#include <stdlib.h>:3:#include <sys/types.h>:4:#include <sys/ipc.h>5:#include <sys/sem.h>:6:#include <unistd.h>7:union semun://使用union开辟空间,把定义的数据放到统一个足够大的空间8:{9: int val;//定义val,当执行SETVAL命令时使用10: struct semid_ds *buf;//定义buf,在IPC_STAT/IPC_SET命令时使用11: unsigned short *array;//在使用GETALL/SETALL命令时使用的指针12: struct seminfo *__buf;//在IPC_INFO命令时使用13:};14:int init_semvalue (int id, int v)15;{16: union semun sem_union;//调用union semun 对象17: sem_union.val = v;18: semctl (id, 0, SETVAL, sem_union);//系统调用senmctl用来执行在信号量及上的控制操作;获取关键字值id,设置信号量的数目为0;SETVAL设置信号量集中的一个单独的信号量的值。

数电实验报告:实验4-计数器及应用161

数电实验报告:实验4-计数器及应用161

广东海洋大学学生实验报告书(学生用表)实验名称实验名称课程名称课程名称课程号课程号学院学院((系) 专业专业班级班级学生姓名学生姓名学号学号实验地点实验地点实验日期实验日期实验4 计数器及其应用一、实验目的1、熟悉中规模集成计数器的逻辑功能及使用方法、熟悉中规模集成计数器的逻辑功能及使用方法2、掌握用74LS161构成计数器的方法构成计数器的方法3、熟悉中规模集成计数器应用、熟悉中规模集成计数器应用二、实验原理计数器是典型的时序逻辑电路,它是用来累计和记忆输入脉冲的个数.计数是数字系统中很重要的基本操作,集成计数器是最广泛应用的逻辑部件之一。

计数器种类较多,按构成计数器中的多触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器;步计数器和异步计数器;根据计数制的不同,根据计数制的不同,根据计数制的不同,可分为二进制计数器、可分为二进制计数器、可分为二进制计数器、十进制计数十进制计数器和任意进制计数器;根据计数的增减趋势,又分为加法、减法和可逆计数器。

还有可预置数和可编程序功能计数器等。

本实验主要研究中规模十进制计数器74LS161的功能及应用。

的功能及应用。

1、中规模集成计数器74LS161 是四位二进制可预置同步计数器,由于它采用4 个主从JK 触发器作为记忆单元,故又称为四位二进制同步计数器,其集成芯片管脚如图元,故又称为四位二进制同步计数器,其集成芯片管脚如图11所示:所示:管脚符号说明:电源正端Vcc ,接+5V ;异步置零(复位)端Rd ;时钟脉冲CP ;预置数控制端数控制端 A 、B 、C 、D ;数据输出端;数据输出端 QA 、QB 、QC 、QD ;进位输出端;进位输出端 RCO :使能端:使能端EP EP EP,,ET ET;预置端;预置端;预置端LD ;图1 74LS161 管脚图管脚图GDOU-B-11-112该计数器由于内部采用了快速进位电路,所以具有较高的计数速度。

广东海洋大学_计算机科学与技术_汇编实验1

广东海洋大学_计算机科学与技术_汇编实验1

实验1 DEBUG的使用实验1、进入Debug环境,完成下列步骤,熟悉DEBUG指令。

1、用R命令查看寄存器的值,将AX的值修改为1,BX的值修改为10。

2、用D命令查看内存0:0200处的内容。

3、用E命令将”I am a student!!”写入内存0:0200处。

用D命令查看是否写入成功。

4、用A 命令向内存0:0210处写入汇编指令MOV AX,1234MOV BX,0158ADD AX, BX(注意:在一般的PC机中,DOS方式下,DOS和其他合法的程序一般都不会使用0:200~0:2FF(0:200h~0:2FFh)的256 个字节的空间。

所以,我们使用这段空间是安全的。

)5、使用U命令反汇编,并用T命令执行指令,查看执行后的结果,3条指令执行后AX的值为多少?实验2、使用Debug命令设置下列寄存器及存储器的内容(DS)=2000H, (BX)=0100H, (SI)=0002H, (20100)=12H, (20101)=34H, (20102)=56H, (20103)=78H, (21200)=2AH, (21201)=4CH, (21202)=B7H, (21203)=65H.,用汇编(A)、单步执行(T)等命令求解下列7个问题的答案,记录每条指令执行后AX的值并分析每条指令中源操作数使用的是何种寻址方式。

(1)MOV AX,1200H(2) MOV AX,BX(3) MOV AX,[1200H](4) MOV AX,[BX](5) MOV AX,1100[BX](6) MOV AX,[BX][SI](7) MOV AX,1100[BX][SI]各种寻址方式的特点:(1)立即寻址方式:操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段;(2)寄存器寻址方式:操作数在寄存器中,指令指定寄存器号;(3)直接寻址方式:操作数的有效地址包含位移量的一种成分,其值就存放在中指令的操作码之后;(4)寄存器间间接寻址:操作数的有效地址只包含基址寄存器内容或变址寄存器内容的一种成分;(5)寄存器相对寻址方式:操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位移量之和,所以有效地址由两种成分组成;(6)基址变址寻址方式:操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和,所以有效地址由两种成分组成;(7)相对基址变址寻址方式操作数的有效地址是一个基址寄存器和一个变址寄存器的内容和指令中指定的位移量之和,所以有效地址由三种成分组成。

计科1141广东海洋大学java实验三

计科1141广东海洋大学java实验三

广东海洋大学学生实验报告书(学生用表)实验名称实验三数组与字符课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.22实验三数组与字符一实验目的:掌握Java数组的编程掌握字符串使用二实验内容:1 已知字符串:“This is a java program.”按要求编写下程序:(1)统计该字符串中字母a出现的次数(2)取出子字符串“java”,存在另一字符串中并输出。

(3)用两种方式将本字符串复制到另一个字符数组char[] str中,并输出(4)将字符串中每个单词的第一个字母变成大写,并输出整个字符串(5)用两种方式将该字符串逆序输出(用stringbuffer和for方式来实现)实验代码:package javademo2;public class Stringtest {GDOU-B-11-112public static void main(String[] args) {//问题1 统计该字符串中字母a出现的次数String s="This is a java program.";int count=0;char[] chs=s.toCharArray();for(int i=0;i<chs.length;i++){if(chs[i]=='a'){count++;}}System.out.println("a出现的次数:"+count);//问题2 取出子字符串“java”,存在另一字符串中并输出。

int index=s.indexOf("java");String ss=s.substring(index,index+4 );System.out.println(ss);//问题3 用两种方式将本字符串复制到另一个字符数组 char[] str中,并输出//方式一:char[] str=s.toCharArray();System.out.println(str);//方式二char[]str2=new char[s.length()];for(int i=0;i<str.length;i++){str2[i]=s.charAt(i);}System.out.println(str2);//问题4 将字符串中每个单词的第一个字母变成大写,并输出整个字符串//思路:先定义一个变量f用来标记是否是单词的开始位置,如果是开始位置就输出大写字母,并把f标记成false,如果遇到空格,就把f标记成true。

广东海洋大学计算机组成原理课程实习报告 课程设计

广东海洋大学计算机组成原理课程实习报告 课程设计


T1
H24
SIGNAL UNIT
SE6
SE6 SE0
SWB SWA
R0
R7 R0
LDR1 SE0 LDR2 ALU_B P<1> LDR1 P<4> RS_B
SWB SWA
P<1> P<4>
I7
I7 I0
I0 LDG UNIT CE LDIRD WE LDAR LDAD PC_A PC_B
R7 CE R0 WE B7 LDAR LDAD B0 PC_B LDPC
7
4
测试结果及分析
4.1 测试过程
地址(二进制) 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0001 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 (ADD ) (ADD STA) (AND) (AND STA) (SUB)
25
R0→DR1
33 01
R0→DR1
37 34 01
(DR1)+(DR2) →R0
26
DR1^DR2 → BUS->R0
01
(DR1)-(DR2) →R0
01 01
5
3.2
接线图
R7 . R0 BUS S3 R7 CN LDR1 LDR2 ALU_B LDR0 R0_B S3 SN T4 T1 JT UNIT T4
本科生课程实习
课程题目:基本模型机的设计与实现

广东海洋大学_计算机科学与技术_汇编实验2

广东海洋大学_计算机科学与技术_汇编实验2

实验2 建立运行汇编语言程序实验目的:1. 熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。

2. 编写源程序,掌握汇编语言程序格式。

3. 掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。

实验内容:在硬盘E中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。

1、有3个内存单元x, ,y z,其中x=1234h,y=0c3f6h,z=10c5h,请编写源程序,计算x+ 2z -y,结果保存在z单元中,并用debug调试运行查看结果,观察标志位变化。

由图中红色部分可看出: 标志位从NC变为CY,即进位值从0变为1.2、写一个完整的源程序,用DEBUG调试运行,查看运行结果。

DATA SEGMENTAUGEND DD 99251SUM DD?DATA ENDSEXTRA SEGMENTADDENG DQ-15962EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:EXTRASTART:MOV AX,DATAMOV DS,AXMOV DX,EXTRAMOV ES,DXMOV AX,WORD PTR AUGENDMOV DX,WORD PTR AUGEND+2ADD AX,WORD PTR AUGENDADC DX,WORD PTR AUGEND+2MOV WORD PTR SUM,AXMOV WORD PTR SUM+2,DXMOV AH,4CHINT 21HCODE ENDS3、完成实验教程第一章的内容。

学习字符串处理指令(课本P75)和DOS显示字符串功能调用(课本P335),理解实验教程例题1.1的程序。

实验报告要求:1、将程序1的调试运行查看结果的过程截图,并分析标志位值的变化情况。

解: 如上图所示.2、分析一个完整的汇编语言源程序应由哪些部分组成?解: 一个完整的汇编语言源程序由: 数据段,代码段.程序指令,中断指令四部分组成.3、总结汇编源程序从编写到执行的过程。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机组成原理实验文档
实验背景
计算机组成原理是计算机科学与技术专业的必修课程之一,也是计算机科学与技术专业的核心课程之一。

本课程主要介绍计算机系统的组成和运行原理,包括计算机硬件、软件及其相互关系等内容。

本文档旨在介绍广东海洋大学计算机组成原理实验的相关内容。

实验内容
本次计算机组成原理实验主要包括以下几个实验内容:
1.介绍计算机硬件组成:了解计算机的硬件组成和各
个部件的功能。

2.学习计算机指令系统:了解计算机指令系统的结构
和运行原理。

3.进行CPU设计实验:学习使用现有的可编程逻辑器
件设计和实现一个简单的计算机CPU。

4.进行内存设计实验:学习使用现有的存储器器件设
计和实现一个简单的存储器模块。

实验过程
1. 介绍计算机硬件组成
计算机硬件是计算机系统的物理组成部分,主要包括中央处理器(CPU)、存储器、输入设备和输出设备等。

在这个实验中,我们将学习不同部件的功能以及它们之间的连接方式。

1.1 中央处理器(CPU)
中央处理器是计算机的核心部件,负责执行计算机程序中的指令。

它由控制单元和算术逻辑单元组成。

控制单元负责解析并执行指令,算术逻辑单元则负责数值计算和逻辑判断等操作。

1.2 存储器
存储器用于存储计算机程序和数据。

它按照访问速度和容量的不同可以分为主存储器和辅助存储器。

主存储器通常是随机存取存储器(RAM),用于暂时存储程序和数据。

辅助存储器通常是磁盘或者固态硬盘等,用于长期存储程序和数据。

1.3 输入设备和输出设备
输入设备用于将外部的数据或者指令输入到计算机系统中,常见的输入设备包括键盘、鼠标和扫描仪等。

输出设备用于将计算机系统处理后的结果输出给用户,常见的输出设备包括显示器、打印机和音响等。

2. 学习计算机指令系统
计算机指令系统是计算机硬件与软件之间的接口,包括指
令的格式、指令的种类和指令的执行方式等。

在这个实验中,我们将学习不同指令的结构和功能,并了解指令的执行过程。

3. 进行CPU设计实验
本实验通过使用现有的可编程逻辑器件,设计和实现一个
简单的计算机CPU。

在这个实验中,我们将学习CPU的基本
结构和运行原理,以及如何使用逻辑门和触发器等器件来实现CPU的功能。

4. 进行内存设计实验
本实验通过使用现有的存储器器件,设计和实现一个简单
的存储器模块。

在这个实验中,我们将学习存储器的组织和访问方式,以及如何使用存储器器件来实现存储器模块。

实验总结
计算机组成原理实验是计算机科学与技术专业的核心实验
之一,通过实验可以加深对计算机硬件组成和指令系统的理解,同时也可以提高设计和实现计算机硬件的能力。

本次实验以广东海洋大学计算机组成原理实验为例,介绍了实验的背景、内容和过程。

希望对同学们的学习有所帮助。

参考资料
1.《计算机组成与设计:硬件/软件接口第5版》-
David A. Patterson,John L. Hennessy
2.《计算机组成原理实验指导书》- 广东海洋大学计
算机科学与技术学院
以上就是计算机组成原理实验的相关内容,希望对大家的
实验学习有所帮助。

如果有任何问题,请随时与助手联系。

相关文档
最新文档