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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)組成與體系結(jié)構(gòu)

實驗報告實驗項目一、實驗?zāi)康耐ㄟ^了解高級語言源程序和目標(biāo)機(jī)器代碼的不同表示及其相互轉(zhuǎn)換,深刻理解高級語言和機(jī)器語言之間的關(guān)系,以及機(jī)器語言和不同體系結(jié)構(gòu)之間的關(guān)系。二、實驗要求:在VC6.0中創(chuàng)建下列源程序#include<stdio.h>voidmain(){inti=100;intj=-1;intk;k=i+j;printf("%d",k);}然后對該程序進(jìn)行編譯、鏈接,最終生成可執(zhí)行目標(biāo)代碼。三、實驗報告給出做實驗的過程.關(guān)鍵代碼如下:Ljiuudinielliuci^i^_||mainT||i-t-i.tjjji:=:^rre-hi5〕二[*x_j#inoIude<stdio.h>voidmain0inti二100;intj=~1;intk;k二i+j;printfk);II給出源程序(文本文件)的內(nèi)容(用十六進(jìn)制形式表示)。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í)行目標(biāo)文件(二進(jìn)制文件)的內(nèi)容(用十六進(jìn)制形式表示)。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調(diào)試環(huán)境:設(shè)置斷點、單步運(yùn)行、變量的值(十進(jìn)制、十六進(jìn)制)、變量的地址、變量的存儲。斷點設(shè)置如下:U01晶電魏|二少匯〒口qi日|諂||[Globals)globalmembers|main#inc1ude<stdio.h>voidmain。{?inti=100;?intj二T;intk;?k二ij;Olprintf(M%dr,rk);1變量的值十進(jìn)制:上下文:mainQ二名稱值■1100j-1k99||\AirtokLciunIm\、izhiM/變量的值十六進(jìn)制:變量的地址:兇Jl0x0B12fF780x0B121=F7c■兇Jl0x0B12fF780x0B121=F7c■limnmimilll■lll■lll■lll■lllmimilll■lll■lll■lll■lllmimilining'll-名稱值■1&田0X0B121=F71?5.VC6.0反匯編:查看源程序?qū)?yīng)的匯編程序、可執(zhí)行目標(biāo)程序的二進(jìn)制編碼、了解如何給變量分配內(nèi)存、系統(tǒng)函數(shù)程序段的調(diào)用。(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)分析同一個源程序在不同機(jī)器上生成的可執(zhí)行目標(biāo)代碼是否相同。不相同。因為不同的機(jī)器硬件的組成不同,因此同一個源程序在不同的機(jī)器上生成的目標(biāo)文件不同。(2)你能在可執(zhí)行目標(biāo)文件中找出函數(shù)printf()對應(yīng)的機(jī)器代碼段嗎?能的話,請標(biāo)示出來。不能。因為源程序中的printf函數(shù)在可執(zhí)行文件中已轉(zhuǎn)換為機(jī)器語言。被翻譯的機(jī)器語言中有printf函數(shù),但是不知道是從哪一段開始翻譯的。(3)為什么源程序文件的內(nèi)容和可執(zhí)行目標(biāo)文件的內(nèi)容完全不同?源程序文件可以直接編寫??蓤?zhí)行文件是被言翻譯過后的。本次實驗讓我明白了通過vc6.0這個軟件編寫出來的高級語言源程序與目標(biāo)機(jī)器代碼的不同表示及其相互轉(zhuǎn)換,深刻理解了內(nèi)存的分配與機(jī)器碼的相關(guān)知識,以及機(jī)器語言和不同體系結(jié)構(gòu)之間的關(guān)系,使得課本上的知識與實驗上的知識相結(jié)合。實驗項目二一、實驗?zāi)康模和ㄟ^無符號數(shù)和帶符號整數(shù)之間的相互轉(zhuǎn)換來理解無符號數(shù)和補(bǔ)碼整數(shù)的表示。了解字符、漢字的機(jī)器表示。了解IEE754浮點數(shù)在機(jī)器中的應(yīng)用,特別是一些特殊值的處理。二、實驗要求:編寫程序分析C語言中不同類型數(shù)據(jù)在計算機(jī)內(nèi)部的表示。驗證教材表2.2中的關(guān)系表達(dá)式的結(jié)果,并編程得出第二章習(xí)題8的表中結(jié)果。通過編程得出float和double類型的精度(即十進(jìn)制有效位的位數(shù))檢查“-8.0/0”、“sqrt(-4.0)的運(yùn)算結(jié)果,并將“-8.0/0”和“-8/0”的運(yùn)行結(jié)果進(jìn)行比較。三、實驗報告:分析下列源程序中的變量在機(jī)器內(nèi)是如何表示的,并給出程序的執(zhí)行結(jié)果,要求給出分析過程。#include<stdio.h>voidmain(){unsignedshorti=65535;intj=-2147483648;intk=65536;charcl二'\n',c2二'x';floatx=100.25671;doubley=567.89;char*str="01as計算機(jī)\n01as\\";printf(〃%u\n〃,j);printf(〃%f\n〃,x);printf(〃%1d\n〃,y);printf(〃%s\n〃,str);printf(〃%d\n〃,i*i);}根據(jù)實驗結(jié)果,回答下列問題:你的機(jī)器字長多少位?int類型的位數(shù)、最小值和最大值各是多少?答:機(jī)器字長:32位;int類型位數(shù):32位;最小值:-2147483648;最大值:2147483647在你的機(jī)器上,-1用int類型和unsigedint類型表示的結(jié)果分別是多少?編寫程序驗證教材表2.2中的關(guān)系表達(dá)式的結(jié)果,并編程得出第二章習(xí)題8的表中結(jié)果。要求給出分析過程。驗證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類型的精度各是多少?(即十進(jìn)制有效位的位數(shù))■'C:\Users\Adrministrator\Demletop\cpp\Debug\Cpp1.exe原數(shù)據(jù)P~1234567)89123嶼6輩9123456789double1.12345釘*912345関麗麗float|l.123456軸57帕花5山盹0Pressanykeytocontinuefloat精度是8位,double精度是16位。(2)在你的機(jī)器上,“負(fù)數(shù)開方”是如何處理的?(如“-8.0/0”、“sqrt(-4.0)”的運(yùn)算結(jié)果)

--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在你的機(jī)器上,整數(shù)除0和浮點數(shù)除0的運(yùn)行結(jié)果各是什么?為什么會有不同的運(yùn)行結(jié)果?并將“-8.0/0”和“-8/0”的運(yùn)行結(jié)果進(jìn)行比較。-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四、實驗總結(jié)和體會:我了知道了無符號數(shù)和帶符號整數(shù)之間的相互轉(zhuǎn)換來理解無符號數(shù)和補(bǔ)碼整數(shù)的表示,以及一些簡單的字符和漢字的機(jī)器表示,此外還了解了IEE754浮點數(shù)在機(jī)器中的應(yīng)用。實驗項目三五、實驗?zāi)康牧私鈹?shù)據(jù)在機(jī)器中的存放方式(存放順序、對其方式)。了解無符號數(shù)和帶符號整數(shù)是如何進(jìn)行擴(kuò)展的。不同數(shù)據(jù)類型之間是如何進(jìn)行轉(zhuǎn)換的。六、實驗要求:設(shè)計一個程序以檢驗?zāi)愕臋C(jī)器是大端方式還是小端方式。以及檢查內(nèi)存變量(如結(jié)構(gòu)或數(shù)組)是否按邊界對其。IncIudeIncIude<stdio.h>voidmain0iritx二0x12345678;prx);地址:|0x0012ff7c0012FF7C78563412xUU_Q012FF80COFF1200____0012FF8U29114000)_@_Q012FF88Q10QQ000____0012FF8C501Q3800P_8_Q012FF90E81Q3800__8_0012FF9UQ00QQ000____通過編程得出無符號數(shù)和帶符號整數(shù)是如何進(jìn)行擴(kuò)展的。編寫程序說明不同數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換時在表數(shù)范圍和精度上的變化。給定一個short型數(shù)據(jù)T2345,分別轉(zhuǎn)化為int>unsignedshort、unsignedint、float類型的數(shù)據(jù);給定一個int型數(shù)據(jù)2147483647,分別轉(zhuǎn)化為short、

unsignedshort、unsignedint、float、double類型的數(shù)據(jù);(3)給定一個float型數(shù)據(jù)123456.789e5,轉(zhuǎn)化成int、double型數(shù)據(jù);(4)給定一個double型數(shù)據(jù)123456.789e5,轉(zhuǎn)化成int、float型數(shù)據(jù)。七、實驗報告1.給出源程序(文本文件)和執(zhí)行結(jié)果。并回答下列問題。(1)你的機(jī)器是大端方式還是小端方式?大端方式(2)內(nèi)存變量是否按照邊界對其?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分析下列源程序中的變量在機(jī)器內(nèi)是如何表示的,以及各變量對應(yīng)的十進(jìn)制真值是多少,并說明無符號數(shù)和帶符號整數(shù)的擴(kuò)展操作方式是否相同?各是如何進(jìn)行的?要求給出分析過程。#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無符號數(shù)和帶符號整數(shù)的擴(kuò)展操作方式不相同,無符號數(shù)擴(kuò)展高位補(bǔ)0有符號整數(shù)擴(kuò)展高位補(bǔ)符號位。給出源程序(文本文件)和執(zhí)行結(jié)果,并回答下列問題:(1)補(bǔ)碼整數(shù)(如int型數(shù))是否總能轉(zhuǎn)換為等值的float類型數(shù)據(jù)?為什么?Iude<stdio.h>voidmain()inti=954545313;■fIoatf二(fIq呂t)i;printfC%d\nSfi.f);品^EzMTDOCVlEHTEV計算機(jī)齟成與ff^^^Vezer03\Debng\exer03.exe1954545313Pressan^Itej/tocontinueint型數(shù)總能轉(zhuǎn)換為等值的float型數(shù)據(jù)。因為float型數(shù)據(jù)的精度比int型數(shù)高。(2)float型數(shù)據(jù)是否總能轉(zhuǎn)換成等值的double型數(shù)據(jù)?為什么?#incIude\atdic.It?voiditci門Jprint-(v原數(shù)據(jù)、廿.1234567891;cC*E:Mr_10CUIIBI5\計算杭擔(dān)咸與悴贏拮構(gòu)VexerDlMJ?erD3.ext原數(shù)馮1_1山殆f/州fludit1.12345603574676510000double1.1234Et78912344990000PrfiSJtRfiUtnnnntiniincC*E:Mr_10CUIIBI5\計算杭擔(dān)咸與悴贏拮構(gòu)VexerDlMJ?erD3.ext原數(shù)馮1_1山殆f/州fludit1.12345603574676510000double1.1234Et78912344990000PrfiSJtRfiUtnnnntiniinill當(dāng)float型數(shù)據(jù)的范圍超出了float本來可以表示的精度范圍時,float型數(shù)據(jù)就不能等值的轉(zhuǎn)換為double型。因為double型數(shù)據(jù)表示的有效位數(shù)有12~14位。而float型數(shù)據(jù)只有5~7位。長數(shù)被截斷成短數(shù)后可能發(fā)生什么現(xiàn)象?為什么?當(dāng)長數(shù)超出了短數(shù)的表示范圍之后,若是被截斷成短數(shù),就會造成溢出。4.分析下列源程序的執(zhí)行結(jié)果,并給出分析過程。當(dāng)長數(shù)超出了短數(shù)的表示范圍之后,若是被截斷成短數(shù),就會造成溢出。4.分析下列源程序的執(zhí)行結(jié)果,并給出分析過程。#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\計算機(jī)姐成與萍丟結(jié)構(gòu)\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浮點數(shù)相加需要先對階,當(dāng)對階之后(y+z)就約等于y,所以x+(y+z)得值為0,所以這兩個式子的結(jié)果是不相等的。一、實驗?zāi)康模毫私鈹?shù)據(jù)的校驗機(jī)制。*2.掌握海明碼校驗實施過程(選做)。*3.掌握循環(huán)冗余碼校驗實施過程(選做)。二、實驗要求:1.設(shè)計一個程序模擬奇偶校驗實施過程(提示:主函數(shù)、發(fā)送函數(shù)、傳輸函數(shù)、校驗函數(shù))。設(shè)計一個程序模擬海明碼校驗實施過程(提示:主函數(shù)、發(fā)送函數(shù)、傳輸函數(shù)、校驗函數(shù)、糾錯函數(shù))。設(shè)計一個程序模擬循環(huán)冗余碼校驗實施過程(提示:主函數(shù)、發(fā)送函數(shù)、傳輸函數(shù)、校驗函數(shù)、糾錯函數(shù))。三、實驗報告:1.給出源程序和執(zhí)行結(jié)果。#include"stdio.h"#include"stdlib.h"#include"time.h"http://校驗函數(shù)intchecked(intdata){intx=data;intcount=0;while(x){count++;x=x&(x-1);}if(count%2==1)returndata|0x80;elsereturndata;}//隨機(jī)產(chǎn)生出錯位intrandom(intdata){intx,p;time_tt;srand(time(&t));x=rand()%9;printf("產(chǎn)生的隨機(jī)數(shù)為:%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〃);//主函數(shù)voidmain(){intdata,p_checked,p_random;printf("請輸入數(shù)據(jù):");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機(jī)組龐與企至站構(gòu)VsxErO4\Debug\ejt&Ki4.exe請輸入數(shù)據(jù)!90原始信息另:5a發(fā)送方求出的校驗R:5a產(chǎn)生的隨機(jī)數(shù)為:4傳輸出的校驗碼!52錯誤!Pressangk@gtocontinue'J:\My_Document磯計算機(jī)組成2體垂結(jié)構(gòu)Debiig\exen04.exe"請輸入數(shù)據(jù):90療始信息芳:5a發(fā)送方求出的校驗位:5曰產(chǎn)生的隨機(jī)數(shù)為;了傳輸出的校驗碼:la雷俁!Pressanykeytocontinue.I"Jr\l/ly_D0-climents\i+W機(jī)組成與為藩結(jié)^匹畑rD4\Debug\?xerO4.ewe"請輸入數(shù)據(jù):90原始信息瓶5a發(fā)送方求出的校驗位;5曰產(chǎn)生的隨機(jī)數(shù)為^3傳輸出的校驗碼:5?醫(yī)侯!Pressanykegtocontinue?'J:\My_Documrntsl計算機(jī)組成與體系結(jié)構(gòu)讓畑「D4\D巴(已rO4.exe請輸入數(shù)據(jù);90原菇信息垢:5a發(fā)送方求出的校驗位;5日產(chǎn)生的隨機(jī)數(shù)為^2傳輸出的校驗碼:58錯謨!Pressanykeytocontinue,'J;\My_Docum蠱nt薊計算機(jī)組成與怵毒結(jié)構(gòu)\exer04\Debug\eKerG4.eMe"請輸入數(shù)據(jù)^30原始信息另:5a發(fā)送方求出的校驗fe:5a產(chǎn)生的隨機(jī)數(shù)為!6樓輸出的校驗碼:7a錯泯!Pressanykeytocontinue'J:\My_Documents\v1-M機(jī)自成與體紊結(jié)構(gòu)\£KEr04\DEbijg\E灼rOA■職『[請輸入數(shù)據(jù);90發(fā)送方求出的校臉R:5a產(chǎn)生的隨機(jī)數(shù)為*0倍輸出的校驗碼:5a正確!Pressanyket|tocontinue實驗項目六:cache和程序訪問的局部性一、實驗?zāi)康耐ㄟ^實際程序的執(zhí)行結(jié)果,了解程序訪問的局部性對帶有cache的計算機(jī)系統(tǒng)性能的影響。二、實驗要求在以下程序中,修改或添加必要的語句(如添加計時函數(shù)等),以計算和打印主體程序段(即for循環(huán)段)的執(zhí)行時間。分別以M=10、N=100000;M=1000、N=1000;M=100000、N=10;執(zhí)行程序A和程序B,以比較兩種for循環(huán)段執(zhí)行時間的長短。下列程序中給出的數(shù)組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.對實驗結(jié)果進(jìn)行分析,說明局部數(shù)據(jù)塊大小,數(shù)據(jù)訪問順序和執(zhí)行時間之間的關(guān)系:由結(jié)果可知通常情況下在動態(tài)空間內(nèi)部訪問情況是行的讀取快于列的讀取,靜態(tài)空間中也是行的讀取快于列的讀取;由時間的增加可得出訪問順序是先行在列,空間分布可得出如圖所示的分布:列數(shù)組的訪問順序不同也會帶來不同的執(zhí)行時間,時間上行〉列.2.分析說明數(shù)組A分配在靜態(tài)存儲區(qū),堆區(qū)和棧區(qū),對for循環(huán)段的執(zhí)行效率有沒有影響。由上圖可以看出,數(shù)組A分配在靜態(tài)存儲區(qū)的訪問速度,無論是行優(yōu)先還是列優(yōu)先都快于將數(shù)組分配在堆區(qū)和棧區(qū)。四、總結(jié)體會本次實驗本小組成員對程序在內(nèi)存空間分配上有了進(jìn)一步的了解,知道了數(shù)組的訪問是如何進(jìn)行的,在以后的編寫程序中會更加有幫助,使得程序的執(zhí)行更加的快。沈揚(yáng)凱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實驗項目一:算術(shù)邏輯運(yùn)算實驗一、實驗?zāi)康模赫莆蘸唵芜\(yùn)算器的組成以及數(shù)據(jù)傳送通路。驗證運(yùn)算功能發(fā)生器(74LS181)的組合功能。按給定的數(shù)據(jù)完成幾種指定的算術(shù)邏輯運(yùn)算。二、實驗重點:數(shù)據(jù)的傳送運(yùn)算功能發(fā)生器(74LS181)的引腳功能的應(yīng)用三、實驗難點:工作過程的理解四、實驗任務(wù):計算74(加)26計算74(減)26計算-74(加)26計算74(減)-26計算74(與)26計算74(或)26*7.完成《實驗指導(dǎo)書》P7表1-2中指定的運(yùn)算(選做)五、實驗原理:=/II||11—-五、實驗原理:=/II||11—-1FJ>407W74L5181昉M皿加ISOS1S2S3F二F二AB實驗中所用的運(yùn)算器數(shù)據(jù)通路如上圖所示。其中運(yùn)算器由兩片74LS181以并/串形式構(gòu)成8位字長的ALU。運(yùn)算器的兩個數(shù)據(jù)輸入端分別由兩個鎖存器(74LS273)鎖存,鎖存器的輸入連至數(shù)據(jù)總線,數(shù)據(jù)輸入開關(guān)用來給出參與運(yùn)算的數(shù)據(jù),并經(jīng)過一三態(tài)門(74LS245)和數(shù)據(jù)總線相連。運(yùn)算器的輸出經(jīng)過一個三態(tài)門(74LS245)和數(shù)據(jù)總線相連。數(shù)據(jù)顯示燈已和數(shù)據(jù)總線相連,用來顯示數(shù)據(jù)總線內(nèi)容。表1-174LS181功能表S3S2S1S0M=0(算術(shù)運(yùn)算)M=1(邏輯運(yùn)算)CN=1無進(jìn)位CN=0有進(jìn)位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六、實驗過程描述:(詳細(xì)實驗過程及實驗結(jié)果)

信號單元T4TS4二IALU_G32101ssssJ輸入單元信號單元T4TS4二IALU_G32101ssssJ輸入單元S^_G|M開關(guān)單元■oSW_G開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤輸入數(shù)據(jù)A:01000110輸入數(shù)據(jù)B:00011010計算:S3S2S1S0M10010⑧輸出結(jié)果:01100010任務(wù)2:連線:開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。④初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤輸入數(shù)據(jù)A:01000110⑥輸入數(shù)據(jù)B:00011010計算:S3S2S1S0M11110輸出結(jié)果:0011000任務(wù)三:連線:信號單元T4TS4二IALU_G32101ssssJ輸入單元信號單元T4TS4二IALU_G32101ssssJ輸入單元S^_G|M開關(guān)單元■oSW_G開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤輸入數(shù)據(jù)A:10111010輸入數(shù)據(jù)B:00011010計算:S3S2S1S0M10010⑧輸出結(jié)果:11010000任務(wù)四:連線:開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。④初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤輸入數(shù)據(jù)A:01000110⑥輸入數(shù)據(jù)B:11100110計算:S3S2S1S0M11110輸出結(jié)果:01100010任務(wù)五:連線:信號單元T4TS4二IALU_G32101ssssJ輸入單元信號單元T4TS4二IALU_G32101ssssJ輸入單元S^_G|M開關(guān)單元■oSW_G開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。初始化:D0D1D2D3D4D5D6D7S3S2S1S0MCNLDDR2LDDR1SW_GALU_GCLR0000000011111100111⑤輸入數(shù)據(jù)A:01000110⑥輸入數(shù)據(jù)B:00011010計算:S3S2S1S0M10111輸出結(jié)果:00000010七、實驗總結(jié):做實驗之前沒有好好看書做好準(zhǔn)備,再加上老師講的有時候沒有認(rèn)真聽,有些細(xì)節(jié)方面掌握的不是很好,做實驗的時候手忙腳亂。后來通過看課件演示以及向同學(xué)請教才學(xué)會如何操作,后來又操作了幾次,完全掌握了。通過這次實驗對計算機(jī)的硬件方面有了一個更深的了解,很有趣。希望在以后的實驗中能夠課前做好準(zhǔn)備,這樣才能在實驗時候提高效率。實驗項目二:進(jìn)位控制實驗一、實驗?zāi)康模候炞C帶進(jìn)位控制的算術(shù)運(yùn)算功能發(fā)生器的功能按給定的數(shù)據(jù)完成幾種指定的算術(shù)運(yùn)算。二、實驗重點:1.進(jìn)位鎖存器的工作原理三、實驗難點:1.進(jìn)位鎖存器的工作原理四、實驗任務(wù):1.計算-60(加)1042.計算100(加)40計算120(減)74計算54(減)74五、實驗原理:

D;7'11527:!ML韶門QztTSOS1S2S3D;7'11527:!ML韶門QztTIIlliABF「斗LS1S1一ARI1I1ALU_GMCNCY(進(jìn)位LED指示燈)最高位有進(jìn)位時CY燈滅,無進(jìn)位時CY燈亮NUBUSD7W.進(jìn)位控制運(yùn)算器的實驗原理如上圖所示,在實驗一的基礎(chǔ)上增加進(jìn)位控制部分,其中181的進(jìn)位進(jìn)入一個鎖存器,其寫入是由T4和AR信號控制,T4是脈沖信號,實驗時將T4連至信號單元的TS4上。AR是電平控制信號(低電平有效),可用于實現(xiàn)帶進(jìn)位控制實驗,而T4脈沖是將本次運(yùn)算的進(jìn)位結(jié)果鎖存到進(jìn)位鎖存器中。六、實驗過程描述:(詳細(xì)實驗過程及實驗結(jié)果)任務(wù)1:連線:連線圖T]口T]口?口TS1T4口TS4信號單元接到數(shù)據(jù)總線算術(shù)邏輯單元DOD7ALU_GIZH>□ALUGS3S2S1S0MCN接到數(shù)據(jù)總線算術(shù)邏輯單元DOD7ALU_GIZH>□ALUGS3S2S1S0MCNLDDR2LDDR1S3S2S1SOMCNLDDR2LDDR1開關(guān)單元?OSWG開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。初始化:DDDDDDDDSSSSMCLDDLDDSWALUCLAR012345673210NR2R1_G_GR0000000011111100111101任務(wù)任務(wù)#:①連線:連線圖輸入數(shù)據(jù)A:01111000輸入數(shù)據(jù)B:01001010計算:S3S2S1S0M11110輸出結(jié)果:100101110檢驗進(jìn)位進(jìn)位是1T]口T]口?口TS1T4口TS4信號單元算術(shù)邏輯單元S3D0S2S1S0.JD1MCND7LDDR2LDDR1算術(shù)邏輯單元S3D0S2S1S0.JD1MCND7LDDR2LDDR1ALU_GIZHAR匚M輸入單元SW_GQ*?oALUGS3S2S1SOMCNLDDR2LDDR1AR開關(guān)單元SWG②開關(guān)復(fù)位:檢查實驗箱的復(fù)位開關(guān)是否關(guān)閉,如果沒有,則關(guān)閉。③打開電源,啟動:電源接口在實驗箱的后面,接上電源,電源開關(guān)在實驗箱的右側(cè),將開關(guān)制為1,啟動。初始化:DDDDDDDDSSSSMCLDDLDDSWALUCLAR012345673210NR2R1_G_GR0000000011111100111101輸入數(shù)據(jù)A:00110110輸入數(shù)據(jù)B:01001010計算:S3S2S1S0M11110輸出結(jié)果:11101100檢驗進(jìn)位沒有進(jìn)位七、實驗總結(jié):再次做實驗相比上次有了很大的進(jìn)步,操作起來更加熟練,,聽完老師的講解后,能夠快速的連接好線路。在做實驗的過程中出現(xiàn)最多的問題就是進(jìn)位時候CY亮的問題,一直不能很好的掌握。在操作了幾次以及請教同學(xué)后才有了一個大致的了解,但不是每次做都能成功,希望以后能夠加強(qiáng)練習(xí),更好地掌握。實驗項目五:存儲器實驗一、實驗?zāi)康模赫莆侦o態(tài)隨機(jī)存儲器RAM工作特性。掌握靜態(tài)隨機(jī)存儲器RAM的數(shù)據(jù)讀寫方法。二、實驗重點:半導(dǎo)體雙端口靜態(tài)存儲器7130的讀寫三、實驗難點:1.半導(dǎo)體雙端口靜態(tài)存儲器7130的讀寫工作時序四、實驗內(nèi)容:1、從右端口給存儲器的00、01、02地址單元中分別寫入數(shù)據(jù)11H、22H、33H;2、然后從右端口依次讀出00、01、02地址單元中的內(nèi)容,在數(shù)據(jù)總線單元的指示燈上進(jìn)行顯示,觀察上述各單元中的內(nèi)容是否與前面寫入的一致。五、實驗原理:實驗所用的半導(dǎo)體雙端口靜態(tài)存儲器電路原理如上圖所示,實驗中的雙端口靜態(tài)存儲器的左端口和右端口,它們分別具有各自獨(dú)立的地址線(A—A)、數(shù)據(jù)線(I/O—I/O)和控制線(R/W,CE,OE,BUSY)。0907在實驗系統(tǒng)的大多數(shù)實驗中,該芯片僅使用了右端口的數(shù)據(jù)線、地址線、控制線,使用方法與通用的單端口靜態(tài)存儲器相同;在做與流水相關(guān)的實驗中同時用到了它的左、右端口。本節(jié)實驗中左、右端口數(shù)

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

溫馨提示

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

評論

0/150

提交評論