计算机组成实验报告汇总_第1页
计算机组成实验报告汇总_第2页
计算机组成实验报告汇总_第3页
计算机组成实验报告汇总_第4页
计算机组成实验报告汇总_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成与体系结构

实验报告实验项目一、实验目的通过了解高级语言源程序和目标机器代码的不同表示及其相互转换,深刻理解高级语言和机器语言之间的关系,以及机器语言和不同体系结构之间的关系。二、实验要求:在VC6.0中创建下列源程序#include<stdio.h>voidmain(){inti=100;intj=-1;intk;k=i+j;printf("%d",k);}然后对该程序进行编译、链接,最终生成可执行目标代码。三、实验报告给出做实验的过程.关键代码如下:Ljiuudinielliuci^i^_||mainT||i-t-i.tjjji:=:^rre-hi5〕二[*x_j#inoIude<stdio.h>voidmain0inti二100;intj=~1;intk;k二i+j;printfk);II给出源程序(文本文件)的内容(用十六进制形式表示)。exerOl.cppOffsetU1234E6789kBCDEFOODOOODO23f96E636C756<65203C737^6469£F2E#im二1ucle<3t.dio・uliDOuulu683EODUA766F6964206D61696E282!3ODh>idiftmini::i00D00020□ATB匚IDOA09696E7420693D3130303BOD■{int.i=100;□ODO0030□A09696E74206A3D2D313BODOA09696Eintj"-1;in0LID0004074206B3BODOA096B3D692B6A3BODOA09t.k;k=i+i;uliDOu0507012696E746628222S64222C6B293BODprintfi:k:i;00D00060OATD}给出可执行目标文件(二进制文件)的内容(用十六进制形式表示)。exerO1.匚exerO1.匚ppEXErO1.6KSOffsetu1234吕67e8AEcDEFOODOOODO知5A90000300□00004000000FFFF0000uODOulUuB0口口匚|口ULIOuOu□0uu40uuOu00uuuuuuuu00D0002000aooa000000□0000000000000000000□□□□□□30□□□□□0□□□□00□0□□□□□□00□□DO□□□□□□00D00040OEIFBAOE00E409CD21B8014CCD21.5468UUJUUUdUbyZL7Uvzb'f■fzblbl)ZUbJblbE吐bK00D000607420626520756E20696E20444F532000D000706DfF已652E□D□DOA2400000000000000OODOOOBODAE45B159E8535469E8535469E85354600300090A8L33E469FE53546ID993B4e90853546OODOOOkOASk33F46A68535469E853446AD853546OODOOOBOFC9A26469D853546769A3E469F853546OODOOOCO52fy6:Z689E8535460000000000000000003000305045oc004CCl0500C49FCE4300000000OODOOOEO00aooa00EO00OE01OB01060000100200OODOOOF'O00AOoa000000□000401100000010000000D001D00010oa000000400000100000001000000030011004cooc0000cooc000400cooc000000000000012000co0200001000000000□0000300000000D0013000aoia000010□0000000100000100000□ODOU14UOUaooa□010OUUOuuuuuuOU00OUUO□0□00030015000AO020028cooc000000cooc00000000U0D0U16UOU00oa□0□0OUUOuuuuuuOU00OUUOUOUO00D0017000BO020008□B□0000020匚2001C000000□ODOulBOOU00oa□0□0OUUOuuuuuuOU00OUUOUOUO0030019000cooc0000cooc000000cooc00000000□ODOulkUOU00oa□0□0OUUOuu4SAl匚z0020ulUOUO00D001B000aooa000000□0000000000000000000□□□□口1匚口□□□□□0□□□□00□0□□ZE74657674□□□□□□00300130BOC802000010oc000010C2oc0010000000D001E000oo000000□0□0000000□0002000006000D001F02E72已6174tl□000C313000000200200□O3OO23O0020oc□0□020□2□0□0□0匚CiCi匚00□0□0□0OO3OO2LO00COoc0040COOC402E64ei7^61000000OODOO22O1056oa00004002000040000000400200c,-I!.LI!Tis口匸□graincannut.beruninI:>OSniude・$Ua[z...5Fz...5Fz...5F£>FY...5Fm;FQ...5F£?F;...5FZ...4F-...5Fus£Fn...5Fv5>FY...5FRichz...5FPEAYICH,・rdat.aL;=L4.VC6.0调试环境:设置断点、单步运行、变量的值(十进制、十六进制)、变量的地址、变量的存储。断点设置如下:U01晶电魏|二少汇〒口qi日|谄||[Globals)globalmembers|main#inc1ude<stdio.h>voidmain。{•inti=100;•intj二T;intk;•k二ij;Olprintf(M%dr,rk);1变量的值十进制:上下文:mainQ二名称值■1100j-1k99||\AirtokLciunIm\、izhiM/变量的值十六进制:变量的地址:凶Jl0x0B12fF780x0B121=F7c■凶Jl0x0B12fF780x0B121=F7c■limnmimilll■lll■lll■lll■lllmimilll■lll■lll■lll■lllmimilining'll-名称值■1&田0X0B121=F71»5.VC6.0反汇编:查看源程序对应的汇编程序、可执行目标程序的二进制编码、了解如何给变量分配内存、系统函数程序段的调用。(Globakj[AllglobalmembersT芈maint|舉幽禹!虱EfiK-60099B63EDK-7En>E6O0ECM-06609998EDK-G0921220ESI-88060999EDI-0O18FFif0HM0-6609900609990660Mttl-006SO99O66O99906HM2=99BO6O9B0G6O99011113-60999060990066(MM7=期就聘円口归帥窈口厲口口帥硏IMIKMMU=帥册就口丹厲。硏閒HGhhQQm口硏011就h口别口刃窈口口口帥^Fllll=I』闕就帥硏口口口口口闕ESQXMri3-6O990O6O9990GCO990G6O90OG6O99@Q6XHbUi-9OO6699B0CeO9906OO9BOOOO99966O99XMH5-60(XMH7-6O99006O99BO66O9B0G6O90066O99O66CS«0923DS-062BES-992BSS-602BFS-&&530S18FF3C=0BSB»a&3KMH9DL^9.06O99BO66O9B8S6O9e^GSO9KMMOQH-KMH9DL^9.06O99BO66O9B8S6O9e^GSO9KMMOQH-*9.B06699B066O9BO66Oe^0G6OKhiMIDL*0.99866(XNN2DL=XMHMDL=XMH6DL-XNN2DL=XMHMDL=XMH6DL-+9.00000000009000000^+0000+9.OG0S00OGQ090OGO0Se+GOe0+9.0GO99B066O99OG6O9b^GCO9^MMaDH=+UJBOGQUBB0OUUBBG|GUUe^OGQUXhlMEOL=+UbBBOGQ(KNMDH-*9.B06699B0CQO9B866Oe^0G6OXh1M7DL-*0.99866(*6.99BO6699O0G6O99O6e-tO90GKHM02+HBBSIOEI13G119II<S^MM12亠削AnRfhfinAAIiflinnnARaiflc-frAAfliG*9.609990661>a_Gll9DaDIDGII亠[t何削chXMII99=士B・O0GO999O66O99OG6Oe«-0GSOXHH61xnrnb=*6.99BO6699O0G6O99O6e-tO90GKHM02+HBBSIOEI13G119II<S^MM12亠削AnRfhfinAAIiflinnnARaiflc-frAAfliG*9.609990661>a_Gll9DaDIDGII亠[t何削ch6.分析或回答下列问题。(1)分析同一个源程序在不同机器上生成的可执行目标代码是否相同。不相同。因为不同的机器硬件的组成不同,因此同一个源程序在不同的机器上生成的目标文件不同。(2)你能在可执行目标文件中找出函数printf()对应的机器代码段吗?能的话,请标示出来。不能。因为源程序中的printf函数在可执行文件中已转换为机器语言。被翻译的机器语言中有printf函数,但是不知道是从哪一段开始翻译的。(3)为什么源程序文件的内容和可执行目标文件的内容完全不同?源程序文件可以直接编写。可执行文件是被言翻译过后的。本次实验让我明白了通过vc6.0这个软件编写出来的高级语言源程序与目标机器代码的不同表示及其相互转换,深刻理解了内存的分配与机器码的相关知识,以及机器语言和不同体系结构之间的关系,使得课本上的知识与实验上的知识相结合。实验项目二一、实验目的:通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示。了解字符、汉字的机器表示。了解IEE754浮点数在机器中的应用,特别是一些特殊值的处理。二、实验要求:编写程序分析C语言中不同类型数据在计算机内部的表示。验证教材表2.2中的关系表达式的结果,并编程得出第二章习题8的表中结果。通过编程得出float和double类型的精度(即十进制有效位的位数)检查“-8.0/0”、“sqrt(-4.0)的运算结果,并将“-8.0/0”和“-8/0”的运行结果进行比较。三、实验报告:分析下列源程序中的变量在机器内是如何表示的,并给出程序的执行结果,要求给出分析过程。#include<stdio.h>voidmain(){unsignedshorti=65535;intj=-2147483648;intk=65536;charcl二'\n',c2二'x';floatx=100.25671;doubley=567.89;char*str="01as计算机\n01as\\";printf(〃%u\n〃,j);printf(〃%f\n〃,x);printf(〃%1d\n〃,y);printf(〃%s\n〃,str);printf(〃%d\n〃,i*i);}根据实验结果,回答下列问题:你的机器字长多少位?int类型的位数、最小值和最大值各是多少?答:机器字长:32位;int类型位数:32位;最小值:-2147483648;最大值:2147483647在你的机器上,-1用int类型和unsigedint类型表示的结果分别是多少?编写程序验证教材表2.2中的关系表达式的结果,并编程得出第二章习题8的表中结果。要求给出分析过程。验证2.2:r㈣globalmembers▼||.main-JdtincludeCstdio.h>voidnidiikC)<-JdtincludeCstdio.h>voidnidiikC)<inti=-21Ji7JiB36Ji8;int]-2147483C48;Lntk=71li7US-1fili7;intn=-21VUS3fiV;unsignedui-i;unsigneduj-j;unsignednk=k;unsignedun-m;|iriurff^iIXii-,i==nj);printl-f^d^n'^Km);printr["^dXn",i<ul:);printF「制W.JXk);卩rint1-C%f1\n",in<n);printF("^d\n",ui<k>;C^Us&r5\Aclmini寸ktopXcpp\Detnjg\Cppl,«xe110110Pressanykegtocontinue通过编写程序回答下列问题(要求给出分析过程):(1)float类型和double类型的精度各是多少?(即十进制有效位的位数)■'C:\Users\Adrministrator\Demletop\cpp\Debug\Cpp1.exe原数据P~1234567)89123屿6辈9123456789double1.12345釘*912345関丽丽float|l.123456轴57帕花5山盹0Pressanykeytocontinuefloat精度是8位,double精度是16位。(2)在你的机器上,“负数开方”是如何处理的?(如“-8.0/0”、“sqrt(-4.0)”的运算结果)

--V-■1«1-M也1#A(E工程回维弐E)T=<T|曲他WBaCH)臣G匚屈诸臥_Lt»[GloboIsj时(AllglobalmiEmb^rf*nn計in川孔”尊论工!訂电E53CpplUncludE<stidlio-ri>uuidiniaiin()doublea--®.10/®;■r:ClassV.„ConFiguratiao:Cpp1-Ui.n肆2D&l>ygGonulling...CPP1-CPPCiVOsersVfiidriinistriiturXDesktDpXcpujXCpp1.cppt^)二errorC212^i;divideormadbjizero执行Cl.eve时岀惜-Cppl-ulij-1ri-i-iir,Plu.iriiiiiijC.)'C:\Users\Administrator\Deelctop\cpp\Debug\Cppl.exc"-1.HINDOOPressanykei)tocontinue在你的机器上,整数除0和浮点数除0的运行结果各是什么?为什么会有不同的运行结果?并将“-8.0/0”和“-8/0”的运行结果进行比较。-8/0:]]^|Q#U0至)&尸「囲廿淄|二助I|[Glnhahlt^lobslmembersrnAin密西禺!T凸丄1宓itioclyde<stdiD.h>uoidmaiof)<douhlea=-8/0i;printf(p,tlFXn1Baa);}3®lCpp1classes■:ClaL^V...zlFileVictvkJI—Configuration!:Cppl-艸in騷壬Debug--Compiling..•Opp1.cp|>G:\U5ersxftdministrator\D?sv<top叩phcppn.cppEj:errorC2124:diultfeorrodhyzero执行cl-eKe时出错一Cppl.abJ-1error(s)P@uarnlng(s)-8.0/0:II'C:\User5\AdTYiini5trator\L>esktop\cpp\Debug\CppL.exe"-1.ttINFOQPressanykeytocontinue四、实验总结和体会:我了知道了无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示,以及一些简单的字符和汉字的机器表示,此外还了解了IEE754浮点数在机器中的应用。实验项目三五、实验目的了解数据在机器中的存放方式(存放顺序、对其方式)。了解无符号数和带符号整数是如何进行扩展的。不同数据类型之间是如何进行转换的。六、实验要求:设计一个程序以检验你的机器是大端方式还是小端方式。以及检查内存变量(如结构或数组)是否按边界对其。IncIudeIncIude<stdio.h>voidmain0iritx二0x12345678;prx);地址:|0x0012ff7c0012FF7C78563412xUU_Q012FF80COFF1200____0012FF8U29114000)_@_Q012FF88Q10QQ000____0012FF8C501Q3800P_8_Q012FF90E81Q3800__8_0012FF9UQ00QQ000____通过编程得出无符号数和带符号整数是如何进行扩展的。编写程序说明不同数据类型之间进行转换时在表数范围和精度上的变化。给定一个short型数据T2345,分别转化为int>unsignedshort、unsignedint、float类型的数据;给定一个int型数据2147483647,分别转化为short、

unsignedshort、unsignedint、float、double类型的数据;(3)给定一个float型数据123456.789e5,转化成int、double型数据;(4)给定一个double型数据123456.789e5,转化成int、float型数据。七、实验报告1.给出源程序(文本文件)和执行结果。并回答下列问题。(1)你的机器是大端方式还是小端方式?大端方式(2)内存变量是否按照边界对其?IncIude<stdio.h>idmain0intx=0x12345678;charc二JK;shortsIncIude<stdio.h>idmain0吋地址:IBB12FF6C0012FF7B0012FF7U0012FF780012FF7C0012FF800B12FF840xC012ff6c名称00600000吋地址:IBB12FF6C0012FF7B0012FF7U0012FF780012FF7C0012FF800B12FF840xC012ff6c名称00600000盹CO5B40乜即GGICCCC4i1cccccca烫:了&冊3即P~|xU4.CBFF1200D9124000.田&x田&d1+1&c0X0B12FF7C0X0012FF6C'0X0012FF78U4I?I"-"0X0012FF74分析下列源程序中的变量在机器内是如何表示的,以及各变量对应的十进制真值是多少,并说明无符号数和带符号整数的扩展操作方式是否相同?各是如何进行的?要求给出分析过程。#include〈stdio.h>

voidmain(){shortsi=-32768;unsignedshortusi=si;inti二si;unsignedui=usi;include<stdio.h>}include<stdio.h>didmain()shortsi二-32768:unsignedshortintusi=si;inti=si;unsignedui=usi;printf;¥上下文:mainQ二名称值si0^8000■10Xffff8000u^i0x8000ui无符号数和带符号整数的扩展操作方式不相同,无符号数扩展高位补0有符号整数扩展高位补符号位。给出源程序(文本文件)和执行结果,并回答下列问题:(1)补码整数(如int型数)是否总能转换为等值的float类型数据?为什么?Iude<stdio.h>voidmain()inti=954545313;■fIoatf二(fIq吕t)i;printfC%d\nSfi.f);品^EzMTDOCVlEHTEV计算机齟成与ff^^^Vezer03\Debng\exer03.exe1954545313Pressan^Itej/tocontinueint型数总能转换为等值的float型数据。因为float型数据的精度比int型数高。(2)float型数据是否总能转换成等值的double型数据?为什么?#incIude\atdic.It?voiditci门Jprint-(v原数据、廿.1234567891;cC*E:Mr_10CUIIBI5\计算杭担咸与悴赢拮构VexerDlMJ»erD3.ext原数冯1_1山殆f/州fludit1.12345603574676510000double1.1234Et78912344990000PrfiSJtRfiUtnnnntiniincC*E:Mr_10CUIIBI5\计算杭担咸与悴赢拮构VexerDlMJ»erD3.ext原数冯1_1山殆f/州fludit1.12345603574676510000double1.1234Et78912344990000PrfiSJtRfiUtnnnntiniinill当float型数据的范围超出了float本来可以表示的精度范围时,float型数据就不能等值的转换为double型。因为double型数据表示的有效位数有12~14位。而float型数据只有5~7位。长数被截断成短数后可能发生什么现象?为什么?当长数超出了短数的表示范围之后,若是被截断成短数,就会造成溢出。4.分析下列源程序的执行结果,并给出分析过程。当长数超出了短数的表示范围之后,若是被截断成短数,就会造成溢出。4.分析下列源程序的执行结果,并给出分析过程。#incIudeCctcIioh》voidmairiHlongirit丨i1二眾/Z:shortintci1-IiJ;longiritIi2-3270E;shortint'printf(J/长整型:%匕吐短整型:駅W,丨门,巳仁;[:rinit("长整型:號IT'.t短整型:昴\门",丨iei:#include〈stdio.h〉voidmain(){floatx=T.5e38;floaty=1.5e38;floatz=1.0;inti=(x+y)+z二二z+(y+z);printf("%d\n",i);IncIncIude<stdio.h>voidmain0fIoatx=-1.5e38;fIoaty=1.5e38;fIoatinti=(x+y)+z==z+(y+z):printfi);C:"E;\II_DOCUIEHS\计算机姐成与萍丢结构\exerQ=3\Debug\.exPr-ess:Btnykeytocontinue(x+y)+z这个式子的值为1.0,而x+(y+z)的值并不是1.0而是0,因为x+(y+z)中先计算(y+z),而y=1.5e38,z=1.0浮点数相加需要先对阶,当对阶之后(y+z)就约等于y,所以x+(y+z)得值为0,所以这两个式子的结果是不相等的。一、实验目的:了解数据的校验机制。*2.掌握海明码校验实施过程(选做)。*3.掌握循环冗余码校验实施过程(选做)。二、实验要求:1.设计一个程序模拟奇偶校验实施过程(提示:主函数、发送函数、传输函数、校验函数)。设计一个程序模拟海明码校验实施过程(提示:主函数、发送函数、传输函数、校验函数、纠错函数)。设计一个程序模拟循环冗余码校验实施过程(提示:主函数、发送函数、传输函数、校验函数、纠错函数)。三、实验报告:1.给出源程序和执行结果。#include"stdio.h"#include"stdlib.h"#include"time.h"//校验函数intchecked(intdata){intx=data;intcount=0;while(x){count++;x=x&(x-1);}if(count%2==1)returndata|0x80;elsereturndata;}//随机产生出错位intrandom(intdata){intx,p;time_tt;srand(time(&t));x=rand()%9;printf("产生的随机数为:%d\n",x);if(x){p=data八(l〈〈(xT));}}else{p=data;}returnp;}//接收方voidreceived(intdata){intx=data,p,r;x=x&0x7f;p=checked(x);r=p^data;if(r){printf(〃错误!\n");}else{printf(〃正确!\n〃);//主函数voidmain(){intdata,p_checked,p_random;printf("请输入数据:");scanf("%d",&data);data=data&0x7f;printf("原始信息为:%02x\n",data);p_checked=checked(data);printf("发送方求出的校验位:%02x\n",p_checked);p_random=random(p_checked);printf("传输出的校验码:%02x\n",p_random);received(p_random);■■'J:\My_Documemts\vtM机組庞与企至站构VsxErO4\Debug\ejt&Ki4.exe请输入数据!90原始信息另:5a发送方求出的校验R:5a产生的随机数为:4传输出的校验码!52错误!Pressangk@gtocontinue'J:\My_Document矶计算机组成2体垂结构Debiig\exen04.exe"请输入数据:90療始信息芳:5a发送方求出的校验位:5曰产生的随机数为;了传输出的校验码:la雷俣!Pressanykeytocontinue.I"Jr\l/ly_D0-climents\i+W机组成与为藩结^匹畑rD4\Debug\?xerO4.ewe"请输入数据:90原始信息瓶5a发送方求出的校验位;5曰产生的随机数为^3传输出的校验码:5©醫侯!Pressanykegtocontinue・'J:\My_Documrntsl计算机组成与体系结构让畑「D4\D巴(已rO4.exe请输入数据;90原菇信息垢:5a发送方求出的校验位;5日产生的随机数为^2传输出的校验码:58错谟!Pressanykeytocontinue,'J;\My_Docum蛊nt蓟计算机组成与怵毒结构\exer04\Debug\eKerG4.eMe"请输入数据^30原始信息另:5a发送方求出的校验fe:5a产生的随机数为!6楼输出的校验码:7a错泯!Pressanykeytocontinue'J:\My_Documents\v1-M机自成与体紊结构\£KEr04\DEbijg\E灼rOA■职『[请输入数据;90发送方求出的校脸R:5a产生的随机数为*0倍输出的校验码:5a正确!Pressanyket|tocontinue实验项目六:cache和程序访问的局部性一、实验目的通过实际程序的执行结果,了解程序访问的局部性对带有cache的计算机系统性能的影响。二、实验要求在以下程序中,修改或添加必要的语句(如添加计时函数等),以计算和打印主体程序段(即for循环段)的执行时间。分别以M=10、N=100000;M=1000、N=1000;M=100000、N=10;执行程序A和程序B,以比较两种for循环段执行时间的长短。下列程序中给出的数组a是局部临时变量,分配在栈中,也可改用静态全局变量,或在堆中动态申请空间。程序段Aassign-array-rows(){inti,j;shorta[M][N];for(i=0;i<M;i++)for(j=0;j<N;j++)a[i][j]=0;程序段Bassign-array-cols(){inti,j;shorta[M][N];for(j=0;j<N;j++)for(i=0;i<M;i++)a[i][j]=0;}三、实验报告:源程序:#include<stdio.h>#include<windows.h>#defineM10#defineN100000/*#defineM100#defineN10000*//*#defineM1000#defineN1000*//*#defineM10000#defineN100#defineM100000#defineN10*/voidassign_array_rows(){inti,j;staticshorta[M][N];//shorta[M][N];LARGE_INTEGERstart,finish,times;QueryPerformanceFrequency(×);QueryPerformanceCounter(&start);for(i=0;i<M;i++){for(j=0;j<N;j++){a[i][j]=0;}}QueryPerformanceCounter(&finish);printf("行优先:%lf\n",(finish.QuadPartstart.QuadPart)*1.0/times.QuadPart);}voidassign_array_cols(){inti,j;staticshorta[M][N];//shorta[M][N];LARGE_INTEGERstart,finish,times;QueryPerformanceFrequency(×);QueryPerformanceCounter(&start);for(j=0;j<N;j++){for(i=0;i<M;i++){a[i][j]=0;}}QueryPerformanceCounter(&finish);printf("列优先:%lf\n",(finish.QuadPartstart.QuadPart)*1.0/times.QuadPart);voidmain(){assign_array_rows();assign_array_cols();}1.对实验结果进行分析,说明局部数据块大小,数据访问顺序和执行时间之间的关系:由结果可知通常情况下在动态空间内部访问情况是行的读取快于列的读取,静态空间中也是行的读取快于列的读取;由时间的增加可得出访问顺序是先行在列,空间分布可得出如图所示的分布:列数组的访问顺序不同也会带来不同的执行时间,时间上行〉列.2.分析说明数组A分配在静态存储区,堆区和栈区,对for循环段的执行效率有没有影响。由上图可以看出,数组A分配在静态存储区的访问速度,无论是行优先还是列优先都快于将数组分配在堆区和栈区。四、总结体会本次实验本小组成员对程序在内存空间分配上有了进一步的了解,知道了数组的访问是如何进行的,在以后的编写程序中会更加有帮助,使得程序的执行更加的快。沈扬凯autostaticrowscolsrowscolsIII-10,n-1000000.0041630.0085170.0051660.011098m—100,n-100000+0042570.0067430.0050130.008077di-1000,11-10000.0042570.01175200049130.01265III10000311=1000.0042380.0129860.0052760.012817in-]00000,n=100.0064780.014898CL0073080.015318实验项目一:算术逻辑运算实验一、实验目的:掌握简单运算器的组成以及数据传送通路。验证运算功能发生器(74LS181)的组合功能。按给定的数据完成几种指定的算术逻辑运算。二、实验重点:数据的传送运算功能发生器(74LS181)的引脚功能的应用三、实验难点:工作过程的理解四、实验任务:计算74(加)26计算74(减)26计算-74(加)26计算74(减)-26计算74(与)26计算74(或)26*7.完成《实验指导书》P7表1-2中指定的运算(选做)五、实验原理:=/II||11—-五、实验原理:=/II||11—-1FJ>407W74L5181昉M皿加ISOS1S2S3F二F二AB实验中所用的运算器数据通路如上图所示。其中运算器由两片74LS181以并/串形式构成8位字长的ALU。运算器的两个数据输入端分别由两个锁存器(74LS273)锁存,锁存器的输入连至数据总线,数据输入开关用来给出参与运算的数据,并经过一三态门(74LS245)和数据总线相连。运算器的输出经过一个三态门(74LS245)和数据总线相连。数据显示灯已和数据总线相连,用来显示数据总线内容。表1-174LS181功能表S3S2S1S0M=0(算术运算)M=1(逻辑运算)CN=1无进位CN=0有进位0000F=AF=A加1F=A0001F=A+BF=(a+b)加1F=A+B

0010F=A+BF=(a+B)加1F=AB0011F=0减1F=0F=00100F=A加ABF=A加AB加1F=AB0101F=(A+B)加ABF=(a+B)加AB加1F=B0110F=A减B减1F=a减BF=A㊉B0111F=AB减1F=ABF=aB1000F=A加ABF=a加AB加1F=A+B1001F=A加BF=a加b加1F=A㊉B1010F=(A+B)加ABF=(A+B)加AB加1F=B1011F=AB减1F=ABF=AB1100F=A加AF=a加A加1F=11101F=(A+B)加AF=(a+B)加A加1F=A+B1110F=(A+B)加AF=(A+B)加a加1F=A+B1111F=A减1F=AF=A六、实验过程描述:(详细实验过程及实验结果)

信号单元T4TS4二IALU_G32101ssssJ输入单元信号单元T4TS4二IALU_G32101ssssJ输入单元S^_G|M开关单元■oSW_G开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤输入数据A:01000110输入数据B:00011010计算:S3S2S1S0M10010⑧输出结果:01100010任务2:连线:开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。④初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤输入数据A:01000110⑥输入数据B:00011010计算:S3S2S1S0M11110输出结果:0011000任务三:连线:信号单元T4TS4二IALU_G32101ssssJ输入单元信号单元T4TS4二IALU_G32101ssssJ输入单元S^_G|M开关单元■oSW_G开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤输入数据A:10111010输入数据B:00011010计算:S3S2S1S0M10010⑧输出结果:11010000任务四:连线:开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。④初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤输入数据A:01000110⑥输入数据B:11100110计算:S3S2S1S0M11110输出结果:01100010任务五:连线:信号单元T4TS4二IALU_G32101ssssJ输入单元信号单元T4TS4二IALU_G32101ssssJ输入单元S^_G|M开关单元■oSW_G开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤输入数据A:01000110⑥输入数据B:00011010计算:S3S2S1S0M10111输出结果:00000010七、实验总结:做实验之前没有好好看书做好准备,再加上老师讲的有时候没有认真听,有些细节方面掌握的不是很好,做实验的时候手忙脚乱。后来通过看课件演示以及向同学请教才学会如何操作,后来又操作了几次,完全掌握了。通过这次实验对计算机的硬件方面有了一个更深的了解,很有趣。希望在以后的实验中能够课前做好准备,这样才能在实验时候提高效率。实验项目二:进位控制实验一、实验目的:验证带进位控制的算术运算功能发生器的功能按给定的数据完成几种指定的算术运算。二、实验重点:1.进位锁存器的工作原理三、实验难点:1.进位锁存器的工作原理四、实验任务:1.计算-60(加)1042.计算100(加)40计算120(减)74计算54(减)74五、实验原理:

D;7'11527:!ML韶门QztTSOS1S2S3D;7'11527:!ML韶门QztTIIlliABF「斗LS1S1一ARI1I1ALU_GMCNCY(进位LED指示灯)最高位有进位时CY灯灭,无进位时CY灯亮NUBUSD7W.进位控制运算器的实验原理如上图所示,在实验一的基础上增加进位控制部分,其中181的进位进入一个锁存器,其写入是由T4和AR信号控制,T4是脉冲信号,实验时将T4连至信号单元的TS4上。AR是电平控制信号(低电平有效),可用于实现带进位控制实验,而T4脉冲是将本次运算的进位结果锁存到进位锁存器中。六、实验过程描述:(详细实验过程及实验结果)任务1:连线:连线图T]口T]口►口TS1T4口TS4信号单元接到数据总线算术逻辑单元DOD7ALU_GIZH>□ALUGS3S2S1S0MCN接到数据总线算术逻辑单元DOD7ALU_GIZH>□ALUGS3S2S1S0MCNLDDR2LDDR1S3S2S1SOMCNLDDR2LDDR1开关单元►OSWG开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。初始化:DDDDDDDDSSSSMCLDDLDDSWALUCLAR012345673210NR2R1_G_GR0000000011111100111101任务任务#:①连线:连线图输入数据A:01111000输入数据B:01001010计算:S3S2S1S0M11110输出结果:100101110检验进位进位是1T]口T]口►口TS1T4口TS4信号单元算术逻辑单元S3D0S2S1S0.JD1MCND7LDDR2LDDR1算术逻辑单元S3D0S2S1S0.JD1MCND7LDDR2LDDR1ALU_GIZHAR匚M输入单元SW_GQ*►oALUGS3S2S1SOMCNLDDR2LDDR1AR开关单元SWG②开关复位:检查实验箱的复位开关是否关闭,如果没有,则关闭。③打开电源,启动:电源接口在实验箱的后面,接上电源,电源开关在实验箱的右侧,将开关制为1,启动。初始化:DDDDDDDDSSSSMCLDDLDDSWALUCLAR012345673210NR2R1_G_GR0000000011111100111101输入数据A:00110110输入数据B:01001010计算:S3S2S1S0M11110输出结果:11101100检验进位没有进位七、实验总结:再次做实验相比上次有了很大的进步,操作起来更加熟练,,听完老师的讲解后,能够快速的连接好线路。在做实验的过程中出现最多的问题就是进位时候CY亮的问题,一直不能很好的掌握。在操作了几次以及请教同学后才有了一个大致的了解,但不是每次做都能成功,希望以后能够加强练习,更好地掌握。实验项目五:存储器实验一、实验目的:掌握静态随机存储器RAM工作特性。掌握静态随机存储器RAM的数据读写方法。二、实验重点:半导体双端口静态存储器7130的读写三、实验难点:1.半导体双端口静态存储器7130的读写工作时序四、实验内容:1、从右端口给存储器的00、01、02地址单元中分别写入数据11H、22H、33H;2、然后从右端口依次读出00、01、02地址单元中的内容,在数据总线单元的指示灯上进行显示,观察上述各单元中的内容是否与前面写入的一致。五、实验原理:实验所用的半导体双端口静态存储器电路原理如上图所示,实验中的双端口静态存储器的左端口和右端口,它们分别具有各自独立的地址线(A—A)、数据线(I/O—I/O)和控制线(R/W,CE,OE,BUSY)。0907在实验系统的大多数实验中,该芯片仅使用了右端口的数据线、地址线、控制线,使用方法与通用的单端口静态存储器相同;在做与流水相关的实验中同时用到了它的左、右端口。本节实验中左、右端口数

据线接至数据总线,左、右端口地址由地址锁存器(74LS273)给出。地址灯LI01—LI08与地址总线相连,显示地址内容。输入单元的数据开关经一个三态门(74LS245)连至数据总线,分别给出地址和数据。OFCE=0?OFCE=0?为写CE=0,WE=1A'ii地址总线为8位,接入IDT7130的地址AL7—AL0与AR0—AR7,将IDT7130的高两位AR8—AR9接地,所以其实际容量为256字节。IDT7130两个端口分别有三个独立的控制线,如右边有:CER(右端口片选线)、OER(右端口读线)、R/WR(右端口写线)。本实验中将左、右端口的读线0ER常接地,在此情况下,当CER=0、R/WR=0时进行右端口写操作,CER=0、R/WR=1时进行右端口读操作,其写时间与T3脉冲宽度一致。原理图中右端口的地址线AR8—AR9接地,其访问实际容量为256字节。同时由于左端口的写信号R/WL常接高电平,所以左端口的写功能被封锁了,故实验时输入数据从右端口写入,从左端口读出。实验时,将T3脉冲接至实验板上时序电路模块的TS3相应插针中,其它电平控制信号由开关单元的二进制开关给出,其中SW_G为低电平有效,LDAR为高电平有效。D7IdDTDJ六、实验过程描述:(详

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论