計算機組成實驗報告匯總_第1頁
計算機組成實驗報告匯總_第2頁
計算機組成實驗報告匯總_第3頁
計算機組成實驗報告匯總_第4頁
計算機組成實驗報告匯總_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機組成與體系結構

實驗報告實驗項目一、實驗目的通過了解高級語言源程序和目標機器代碼的不同表示及其相互轉換,深刻理解高級語言和機器語言之間的關系,以及機器語言和不同體系結構之間的關系。二、實驗要求:在VC6.0中創(chuàng)建下列源程序#include<stdio.h>voidmain(){inti=100;intj=-1;intk;k=i+j;printf("%d",k);}然后對該程序進行編譯、鏈接,最終生成可執(zhí)行目標代碼。三、實驗報告給出做實驗的過程.關鍵代碼如下: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}給出可執(zhí)行目標文件(二進制文件)的內容(用十六進制形式表示)。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調試環(huán)境:設置斷點、單步運行、變量的值(十進制、十六進制)、變量的地址、變量的存儲。斷點設置如下: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反匯編:查看源程序對應的匯編程序、可執(zhí)行目標程序的二進制編碼、了解如何給變量分配內存、系統(tǒng)函數程序段的調用。(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)分析同一個源程序在不同機器上生成的可執(zhí)行目標代碼是否相同。不相同。因為不同的機器硬件的組成不同,因此同一個源程序在不同的機器上生成的目標文件不同。(2)你能在可執(zhí)行目標文件中找出函數printf()對應的機器代碼段嗎?能的話,請標示出來。不能。因為源程序中的printf函數在可執(zhí)行文件中已轉換為機器語言。被翻譯的機器語言中有printf函數,但是不知道是從哪一段開始翻譯的。(3)為什么源程序文件的內容和可執(zhí)行目標文件的內容完全不同?源程序文件可以直接編寫。可執(zhí)行文件是被言翻譯過后的。本次實驗讓我明白了通過vc6.0這個軟件編寫出來的高級語言源程序與目標機器代碼的不同表示及其相互轉換,深刻理解了內存的分配與機器碼的相關知識,以及機器語言和不同體系結構之間的關系,使得課本上的知識與實驗上的知識相結合。實驗項目二一、實驗目的:通過無符號數和帶符號整數之間的相互轉換來理解無符號數和補碼整數的表示。了解字符、漢字的機器表示。了解IEE754浮點數在機器中的應用,特別是一些特殊值的處理。二、實驗要求:編寫程序分析C語言中不同類型數據在計算機內部的表示。驗證教材表2.2中的關系表達式的結果,并編程得出第二章習題8的表中結果。通過編程得出float和double類型的精度(即十進制有效位的位數)檢查“-8.0/0”、“sqrt(-4.0)的運算結果,并將“-8.0/0”和“-8/0”的運行結果進行比較。三、實驗報告:分析下列源程序中的變量在機器內是如何表示的,并給出程序的執(zhí)行結果,要求給出分析過程。#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執(zhí)行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執(zhí)行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.給出源程序(文本文件)和執(zhí)行結果。并回答下列問題。(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有符號整數擴展高位補符號位。給出源程序(文本文件)和執(zhí)行結果,并回答下列問題:(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位。長數被截斷成短數后可能發(fā)生什么現象?為什么?當長數超出了短數的表示范圍之后,若是被截斷成短數,就會造成溢出。4.分析下列源程序的執(zhí)行結果,并給出分析過程。當長數超出了短數的表示范圍之后,若是被截斷成短數,就會造成溢出。4.分析下列源程序的執(zhí)行結果,并給出分析過程。#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.掌握循環(huán)冗余碼校驗實施過程(選做)。二、實驗要求:1.設計一個程序模擬奇偶校驗實施過程(提示:主函數、發(fā)送函數、傳輸函數、校驗函數)。設計一個程序模擬海明碼校驗實施過程(提示:主函數、發(fā)送函數、傳輸函數、校驗函數、糾錯函數)。設計一個程序模擬循環(huán)冗余碼校驗實施過程(提示:主函數、發(fā)送函數、傳輸函數、校驗函數、糾錯函數)。三、實驗報告:1.給出源程序和執(zhí)行結果。#include"stdio.h"#include"stdlib.h"#include"time.h"http://校驗函數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("發(fā)送方求出的校驗位:%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發(fā)送方求出的校驗R:5a產生的隨機數為:4傳輸出的校驗碼!52錯誤!Pressangk@gtocontinue'J:\My_Document磯計算機組成2體垂結構Debiig\exen04.exe"請輸入數據:90療始信息芳:5a發(fā)送方求出的校驗位:5曰產生的隨機數為;了傳輸出的校驗碼:la雷俁!Pressanykeytocontinue.I"Jr\l/ly_D0-climents\i+W機組成與為藩結^匹畑rD4\Debug\?xerO4.ewe"請輸入數據:90原始信息瓶5a發(fā)送方求出的校驗位;5曰產生的隨機數為^3傳輸出的校驗碼:5?醫(yī)侯!Pressanykegtocontinue?'J:\My_Documrntsl計算機組成與體系結構讓畑「D4\D巴(已rO4.exe請輸入數據;90原菇信息垢:5a發(fā)送方求出的校驗位;5日產生的隨機數為^2傳輸出的校驗碼:58錯謨!Pressanykeytocontinue,'J;\My_Docum蠱nt薊計算機組成與怵毒結構\exer04\Debug\eKerG4.eMe"請輸入數據^30原始信息另:5a發(fā)送方求出的校驗fe:5a產生的隨機數為!6樓輸出的校驗碼:7a錯泯!Pressanykeytocontinue'J:\My_Documents\v1-M機自成與體紊結構\£KEr04\DEbijg\E灼rOA■職『[請輸入數據;90發(fā)送方求出的校臉R:5a產生的隨機數為*0倍輸出的校驗碼:5a正確!Pressanyket|tocontinue實驗項目六:cache和程序訪問的局部性一、實驗目的通過實際程序的執(zhí)行結果,了解程序訪問的局部性對帶有cache的計算機系統(tǒng)性能的影響。二、實驗要求在以下程序中,修改或添加必要的語句(如添加計時函數等),以計算和打印主體程序段(即for循環(huán)段)的執(zhí)行時間。分別以M=10、N=100000;M=1000、N=1000;M=100000、N=10;執(zhí)行程序A和程序B,以比較兩種for循環(huán)段執(zhí)行時間的長短。下列程序中給出的數組a是局部臨時變量,分配在棧中,也可改用靜態(tài)全局變量,或在堆中動態(tài)申請空間。程序段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("行優(yōu)先:%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("列優(yōu)先:%lf\n",(finish.QuadPartstart.QuadPart)*1.0/times.QuadPart);voidmain(){assign_array_rows();assign_array_cols();}1.對實驗結果進行分析,說明局部數據塊大小,數據訪問順序和執(zhí)行時間之間的關系:由結果可知通常情況下在動態(tài)空間內部訪問情況是行的讀取快于列的讀取,靜態(tài)空間中也是行的讀取快于列的讀?。挥蓵r間的增加可得出訪問順序是先行在列,空間分布可得出如圖所示的分布:列數組的訪問順序不同也會帶來不同的執(zhí)行時間,時間上行〉列.2.分析說明數組A分配在靜態(tài)存儲區(qū),堆區(qū)和棧區(qū),對for循環(huán)段的執(zhí)行效率有沒有影響。由上圖可以看出,數組A分配在靜態(tài)存儲區(qū)的訪問速度,無論是行優(yōu)先還是列優(yōu)先都快于將數組分配在堆區(qū)和棧區(qū)。四、總結體會本次實驗本小組成員對程序在內存空間分配上有了進一步的了解,知道了數組的訪問是如何進行的,在以后的編寫程序中會更加有幫助,使得程序的執(zhí)行更加的快。沈揚凱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實驗項目一:算術邏輯運算實驗一、實驗目的:掌握簡單運算器的組成以及數據傳送通路。驗證運算功能發(fā)生器(74LS181)的組合功能。按給定的數據完成幾種指定的算術邏輯運算。二、實驗重點:數據的傳送運算功能發(fā)生器(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)鎖存,鎖存器的輸入連至數據總線,數據輸入開關用來給出參與運算的數據,并經過一三態(tài)門(74LS245)和數據總線相連。運算器的輸出經過一個三態(tài)門(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七、實驗總結:做實驗之前沒有好好看書做好準備,再加上老師講的有時候沒有認真聽,有些細節(jié)方面掌握的不是很好,做實驗的時候手忙腳亂。后來通過看課件演示以及向同學請教才學會如何操作,后來又操作了幾次,完全掌握了。通過這次實驗對計算機的硬件方面有了一個更深的了解,很有趣。希望在以后的實驗中能夠課前做好準備,這樣才能在實驗時候提高效率。實驗項目二:進位控制實驗一、實驗目的:驗證帶進位控制的算術運算功能發(fā)生器的功能按給定的數據完成幾種指定的算術運算。二、實驗重點: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亮的問題,一直不能很好的掌握。在操作了幾次以及請教同學后才有了一個大致的了解,但不是每次做都能成功,希望以后能夠加強練習,更好地掌握。實驗項目五:存儲器實驗一、實驗目的:掌握靜態(tài)隨機存儲器RAM工作特性。掌握靜態(tài)隨機存儲器RAM的數據讀寫方法。二、實驗重點:半導體雙端口靜態(tài)存儲器7130的讀寫三、實驗難點:1.半導體雙端口靜態(tài)存儲器7130的讀寫工作時序四、實驗內容:1、從右端口給存儲器的00、01、02地址單元中分別寫入數據11H、22H、33H;2、然后從右端口依次讀出00、01、02地址單元中的內容,在數據總線單元的指示燈上進行顯示,觀察上述各單元中的內容是否與前面寫入的一致。五、實驗原理:實驗所用的半導體雙端口靜態(tài)存儲器電路原理如上圖所示,實驗中的雙端口靜態(tài)存儲器的左端口和右端口,它們分別具有各自獨立的地址線(A—A)、數據線(I/O—I/O)和控制線(R/W,CE,OE,BUSY)。0907在實驗系統(tǒng)的大多數實驗中,該芯片僅使用了右端口的數據線、地址線、控制線,使用方法與通用的單端口靜態(tài)存儲器相同;在做與流水相關的實驗中同時用到了它的左、右端口。本節(jié)實驗中左、右端口數

據線接至數據總線,左、右端口地址由地址鎖存器(74LS273)給出。地址燈LI01—LI08與地址總線相連,顯示地址內容。輸入單元的數據開關經一個三態(tài)門(74LS245)連至數據總線,分別給出地址和數據。OFCE=0?OFCE=0?為寫CE=0,WE=1A'ii地址總線為8位,接入IDT7130的地址AL7—AL0與AR0—AR7,將IDT7130的高兩位AR8—AR9接地,所以其實際容量為256字節(jié)。IDT7130兩個端口分別有三個獨立的控制線,如右邊有:CER(右端口片選線)、OER(右端口讀線)、R/WR(右端口寫線)。本實驗中將左、右端口的讀線0ER常接地,在此情況下,當CER=0、R/WR=0時進行右端口寫操作,CER=0、R/WR=1時進行右端口讀操作,其寫時間與T3脈沖寬度一致。原理圖中右端口的地址線AR8—AR9接地,其訪問實際容量為256字節(jié)。同時由于左端口的寫信號R/WL常接高電平,所以左端口的寫功能被封鎖了,故實驗時輸入數據從右端口寫入,從左端口讀出。實驗時,將T3脈沖接至實驗板上時序電路模塊的TS3相應插針中,其它電平控制信號由開關單元的二進制開關給出,其中SW_G為低電平有效,LDAR為高電平有效。D7IdDTDJ六、實驗過程描述:(詳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論