![計(jì)算機(jī)組成與設(shè)計(jì)課內(nèi)實(shí)驗(yàn)指導(dǎo)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b1.gif)
![計(jì)算機(jī)組成與設(shè)計(jì)課內(nèi)實(shí)驗(yàn)指導(dǎo)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b2.gif)
![計(jì)算機(jī)組成與設(shè)計(jì)課內(nèi)實(shí)驗(yàn)指導(dǎo)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b3.gif)
![計(jì)算機(jī)組成與設(shè)計(jì)課內(nèi)實(shí)驗(yàn)指導(dǎo)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b4.gif)
![計(jì)算機(jī)組成與設(shè)計(jì)課內(nèi)實(shí)驗(yàn)指導(dǎo)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-10/20/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b/0f18aa73-6dd8-44f1-8b4e-029ba2e8e34b5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)組成與設(shè)計(jì)課內(nèi)實(shí)驗(yàn)指導(dǎo)實(shí)驗(yàn)一 可執(zhí)行程序的生成(第1 章)一、實(shí)驗(yàn)?zāi)康模和ㄟ^(guò)了解高級(jí)語(yǔ)言源程序和目標(biāo)機(jī)器代碼的不同表示及其相互轉(zhuǎn)換,深刻理解高級(jí)語(yǔ)言和機(jī)器語(yǔ)言之間的關(guān)系,以及機(jī)器語(yǔ)言和不同體系結(jié)構(gòu)之間的關(guān)系。二、實(shí)驗(yàn)要求:對(duì)教材1.4.5 節(jié)給出的hello.c 源程序進(jìn)行編譯、鏈接,最終生成可執(zhí)行目標(biāo)代碼。三、實(shí)驗(yàn)步驟:1.在windos環(huán)境下用任意一個(gè)編輯器編寫(xiě)hello.c程序,拷貝到e:openmips目錄下。2.將windos環(huán)境下e:openmipshello.c源程序拷貝到虛擬機(jī)/home/目錄下。(1)打開(kāi)visualbox,界面如圖1所示。圖1 visualbox主界面
2、(2)雙擊openrisc_ubuntu圖標(biāo),啟動(dòng)虛擬機(jī),界面如圖2所示。(3)打開(kāi)命令終端,如圖3所示,在命令行輸入 sudo mount t vboxsf openmips /mnt/回車(chē),輸入openrisc密碼,然后打開(kāi)虛擬機(jī)左上角文件夾,按照目錄層次打開(kāi) /mnt/文件夾,將/mnt下的hello.c源程序拷貝到當(dāng)前(/home/)目錄下。圖2 虛擬機(jī)桌面圖3 命令終端3.在虛擬機(jī)環(huán)境下將hello.c編譯為mips匯編程序。(1)在命令行輸入 mips,在連按兩次tab鍵,看到如圖4所示的mips編譯工具列表。圖4 mips編譯工具(2)如查看mips-sde-elf-gcc命令使
3、用說(shuō)明,只要在命令行輸入mips-sde-elf-gcc -help。(3)編譯hello.c源程序?yàn)閰R編代碼:在命令行輸入mips-sde-elf-gcc s hello.c回車(chē)即可,在當(dāng)前目錄下就生成hello.s匯編程序。4.將匯編程序匯編為二進(jìn)制機(jī)器代碼:在命令行輸入mips-sde-elf-as mips32 hello.s -o hello.o回車(chē)即可,在當(dāng)前目錄下就生成hello.o目標(biāo)代碼。5.進(jìn)行鏈接成可執(zhí)行目標(biāo)文件。將(/opt/mips-4.3/mips-sde-elf/lib)安裝目錄下的malta-24kc-ram-hosted.ld文件拷貝到當(dāng)前(/home/)目錄
4、下,在命令行輸入mips-sde-elf-ld t malta-24kc-ram-hosted.ld hello.o o hello.om,此命令如有問(wèn)題,用gcc直接編譯、匯編、鏈接成可執(zhí)行文件,即在命令行輸入mips-sde-elf-gcc t malta-24kc-ram-hosted.ld hello.c o hello.om即可。6.在命令行輸入mips-sde-elf-run hello.om即可看到運(yùn)行結(jié)果。 7.在虛擬機(jī)環(huán)境下查看編譯、匯編、鏈接后的結(jié)果。例如在命令行輸入cat hello.s即可看到編譯結(jié)果。8.同時(shí)在命令行輸入mips-sde-elf-objdump s h
5、ello.om即可看到反匯編代碼段和數(shù)據(jù)段。四、實(shí)驗(yàn)報(bào)告:1. 說(shuō)明你做實(shí)驗(yàn)的過(guò)程(重要步驟用屏幕截圖表示)。2. 給出源程序(文本文件)的內(nèi)容(用十六進(jìn)制形式表示)。3. 給出可執(zhí)行目標(biāo)文件(二進(jìn)制文件)的內(nèi)容(用十六進(jìn)制形式表示)。4. 分析或回答下列問(wèn)題。(1)分析同一個(gè)源程序在不同機(jī)器上生成的可執(zhí)行目標(biāo)代碼是否相同。(2)你能在可執(zhí)行目標(biāo)文件中找出函數(shù)printf ()對(duì)應(yīng)的機(jī)器代碼段嗎?能的話,請(qǐng)標(biāo)示出來(lái)。(3)為什么源程序文件的內(nèi)容和可執(zhí)行目標(biāo)文件的內(nèi)容完全不同?實(shí)驗(yàn)二 數(shù)據(jù)表示和運(yùn)算(第2、3章)一、實(shí)驗(yàn)?zāi)康模?.通過(guò)無(wú)符號(hào)數(shù)和帶符號(hào)整數(shù)之間的相互轉(zhuǎn)換來(lái)理解無(wú)符號(hào)數(shù)和補(bǔ)碼整數(shù)的表
6、示。2.了解ieee 754 浮點(diǎn)數(shù)在機(jī)器中的應(yīng)用,特別是一些特殊值的處理。3.了解數(shù)據(jù)在機(jī)器中的存放方式。4.了解高級(jí)語(yǔ)言中數(shù)據(jù)類型的轉(zhuǎn)換和移位操作結(jié)果,從而能更好地理解指令系統(tǒng)設(shè)計(jì)和計(jì)算機(jī)硬件設(shè)計(jì)所需滿足的要求和需要考慮的問(wèn)題。5.通過(guò)檢查高級(jí)語(yǔ)言中數(shù)據(jù)運(yùn)算的不同結(jié)果,進(jìn)一步理解機(jī)器代碼在cpu 中的執(zhí)行過(guò)程,從而為更好地學(xué)習(xí)指令系統(tǒng)設(shè)計(jì)和cpu 設(shè)計(jì)打下良好的基礎(chǔ)。二、實(shí)驗(yàn)要求:1.驗(yàn)證教材表2.2 中的關(guān)系表達(dá)式的結(jié)果,并編程得出第二章習(xí)題8 的表中結(jié)果。2.通過(guò)編程得出float 和double 類型的精度(即十進(jìn)制有效位的位數(shù))。3.編程檢查“-8.0/0”、“sqrt(-4.0)
7、”的運(yùn)算結(jié)果。4.檢查你的機(jī)器是大端方式還是小端方式,檢查內(nèi)存變量(如結(jié)構(gòu)或數(shù)組)是否按邊界對(duì)齊。5.編程實(shí)現(xiàn)以下各種操作,分別用十進(jìn)制和十六進(jìn)制形式打印輸出各種操作的結(jié)果:(1) 給定一個(gè)short 型數(shù)據(jù) -12345,分別轉(zhuǎn)換為int、unsigned short、unsigned int、float 類型的數(shù)據(jù);(2) 給定一個(gè)int 型數(shù)據(jù)2147483647,分別轉(zhuǎn)換為short、unsigned short、unsigned int、float 類型的數(shù)據(jù);(3)給定一個(gè)float 型數(shù)據(jù)123456.789e5,轉(zhuǎn)換成double 型數(shù)據(jù);(4)給定一個(gè)double 型數(shù)據(jù)12
8、3456.789e5,轉(zhuǎn)換成float 型數(shù)據(jù);(5)按short 和unsigned short 類型分別對(duì)-12345 進(jìn)行左移2 位和右移2 位操作。6.編程計(jì)算下列表達(dá)式的值,分別用十進(jìn)制和十六進(jìn)制形式顯示各種操作的結(jié)果:(1)unsigned int 型數(shù)據(jù): 1+4294967295=?;1-4294967295=?(2)int 型數(shù)據(jù):2147483647+1=?;-2147483648-1=?(3)float 型數(shù)據(jù):(1.0 + 123456.789e30) + (-123456.789e30) = ?;1.0 + (123456.789e30 + (- 123456.789
9、e30) = ?三、實(shí)驗(yàn)步驟:1.編寫(xiě)相關(guān)運(yùn)算的c源代碼。2打開(kāi)命令終端,在命令行輸入 sudo mount t vboxsf openmips /mnt/回車(chē),輸入openrisc密碼,然后打開(kāi)虛擬機(jī)左上角文件夾,按照目錄層次打開(kāi) /mnt/文件夾,將/mnt下的c源程序拷貝到當(dāng)前(/home/)目錄下。3在命令行輸入mips-sde-elf-gcc t malta-24kc-ram-hosted.ld *.c o *.om生成可執(zhí)行文件。4在命令行輸入mips-sde-elf-run *.om檢查相關(guān)程序運(yùn)行結(jié)果。5按照實(shí)驗(yàn)一中相應(yīng)操作,對(duì)c源程序進(jìn)行編譯、匯編、鏈接以及可執(zhí)行代碼的反匯編
10、,分析相關(guān)數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的表示和運(yùn)算過(guò)程。四、實(shí)驗(yàn)報(bào)告:1. 說(shuō)明你做實(shí)驗(yàn)的過(guò)程(重要步驟用屏幕截圖表示)。2. 分析或回答下列問(wèn)題。(1)在虛擬機(jī)上,-1 用int 類型和unsiged int 類型表示的結(jié)果分別是多少?(2)float類型和double 類型的精度各是多少?(3)無(wú)符號(hào)數(shù)和帶符號(hào)整數(shù)的擴(kuò)展操作方式是否相同?各是如何進(jìn)行的?(4) 補(bǔ)碼整數(shù)(如int 型數(shù))是否總能轉(zhuǎn)換為等值的float 類型數(shù)據(jù)?為什么?(5) float 型數(shù)據(jù)是否總能轉(zhuǎn)換成等值的double 型數(shù)據(jù)?為什么?(6) 長(zhǎng)數(shù)被截?cái)喑啥虜?shù)后可能發(fā)生什么現(xiàn)象?為什么?(7)將某一源程序生成的可執(zhí)行文件反匯編
11、,分析反匯編代碼并和編譯生成的匯編代碼進(jìn)行比較。實(shí)驗(yàn)三 cache和程序訪問(wèn)的局部性(第4章)一、實(shí)驗(yàn)?zāi)康模?.通過(guò)實(shí)際程序的執(zhí)行,理解“存儲(chǔ)程序”工作方式的自動(dòng)執(zhí)行過(guò)程。2.通過(guò)檢查實(shí)際程序的存儲(chǔ)空間,了解數(shù)據(jù)的存儲(chǔ)和排列順序。3.通過(guò)實(shí)際程序的執(zhí)行結(jié)果,了解程序訪問(wèn)的局部性對(duì)帶有cache 的計(jì)算機(jī)系統(tǒng)性能的影響。二、實(shí)驗(yàn)要求:1.將helloworld程序編譯為匯編程序在qtspim模擬器上運(yùn)行。2編寫(xiě)以下程序,修改或添加必要的語(yǔ)句(如計(jì)時(shí)函數(shù)等),以計(jì)算和打印主體程序段的執(zhí)行時(shí)間。分別以m=100000,n=10、m=1000,n=1000、m=10,n=100000,執(zhí)行程序a和程序
12、b,以比較兩個(gè)程序執(zhí)行時(shí)間的長(zhǎng)短。程序段a:a_r (int m,int n) int i, j, amn; for (i= 0; im; i+) for (j= 0; jn; j+) aij=i+j;程序段b:a_c (int m,int n ) int i, j, amn; for (j= 0; jn; j+) for (i=0; im; i+) aij=i+j;三、實(shí)驗(yàn)步驟:1.將hello world.s匯編程序,在qtspim模擬環(huán)境下運(yùn)行,檢查機(jī)器是大端方式還是小端方式以及內(nèi)存變量(如結(jié)構(gòu)或數(shù)組)是否按邊界對(duì)齊。2.將程序程序段a和b在實(shí)驗(yàn)一的基礎(chǔ)上編譯為匯編語(yǔ)言。3.按照附錄a
13、mipssim的指令列表、附錄c mipssim的匯編語(yǔ)言文檔要求修改匯編程序,適合mipssim模擬環(huán)境。4.按照mipssim使用說(shuō)明在mipssim模擬環(huán)境下單步運(yùn)行并檢查內(nèi)存空間。四、實(shí)驗(yàn)報(bào)告:1. 說(shuō)明你做實(shí)驗(yàn)的過(guò)程(重要步驟用屏幕截圖表示)和執(zhí)行結(jié)果。2. 對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,說(shuō)明局部數(shù)據(jù)塊大小、數(shù)組訪問(wèn)順序等和執(zhí)行時(shí)間之間的關(guān)系。五、附錄:1.spim模擬器安裝對(duì)于spim,可以將qtspim_9.1.7_windows解壓到某一目錄下,然后單擊setup.exe或者qtspim-mingw.msi文件,默認(rèn)設(shè)置直接安裝。2.mipssim模擬器安裝對(duì)于mipssim,需要安裝m
14、icrosoft .net framework組件(dotnetfx.exe),然后直接運(yùn)行mips.exe即可。實(shí)驗(yàn)四 程序的機(jī)器級(jí)表示及其過(guò)程調(diào)用(第5章)一、實(shí)驗(yàn)?zāi)康模?.理解mips通用寄存器的使用。2.學(xué)會(huì)使用mips匯編語(yǔ)言編寫(xiě)簡(jiǎn)單的程序。3.理解高級(jí)語(yǔ)言過(guò)程調(diào)用的機(jī)器代碼表示及其執(zhí)行過(guò)程。二、實(shí)驗(yàn)要求:對(duì)教材例5.10高級(jí)語(yǔ)言通過(guò)手工轉(zhuǎn)換或交叉編譯器編譯為mips匯編程序,然后在qtspim模擬器上單步運(yùn)行,分析堆棧使用情況和過(guò)程調(diào)用執(zhí)行過(guò)程。三、實(shí)驗(yàn)步驟:1.在windos環(huán)境下用任意一個(gè)編輯器將例子中的c語(yǔ)言程序補(bǔ)充完整。2.結(jié)合書(shū)中給出的子函數(shù)匯編,將c語(yǔ)言程序手工轉(zhuǎn)換為mips匯編語(yǔ)言。 3.在qtspim模擬器單步執(zhí)行,查看通用寄存器和內(nèi)存空間的變化。四、實(shí)驗(yàn)報(bào)告:1. 說(shuō)明你做實(shí)驗(yàn)的過(guò)程(重要步驟用屏幕截圖表示)和執(zhí)行結(jié)果。2. 對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,程序調(diào)用過(guò)程中三個(gè)子函數(shù)的棧指針、幀指針等寄存器內(nèi)容以及堆棧的內(nèi)容的異同。五、附錄:1.mips+匯編指令基礎(chǔ)。2.mips常用指令。3.see_mips_run。實(shí)驗(yàn)五 機(jī)器指令執(zhí)行過(guò)程(第6章)一、實(shí)驗(yàn)?zāi)康模?.了解數(shù)據(jù)通路的設(shè)計(jì)。2.了解控制器的設(shè)計(jì)。3.理解機(jī)器指令的執(zhí)行過(guò)程。二、實(shí)驗(yàn)要求:將openmips模型進(jìn)行綜合、仿真,分析數(shù)據(jù)通路與控
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 全方位保安服務(wù)合同模板2025年
- 2025年體育中心使用租賃合同書(shū)
- 2025年合伙發(fā)展戰(zhàn)略投資合同
- 2025年協(xié)議離婚權(quán)益策劃保障
- 2025年重癥監(jiān)護(hù)臨床信息系統(tǒng)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模稿
- 2025年個(gè)人融資合同策劃(含利息標(biāo)準(zhǔn))
- 2025年產(chǎn)品質(zhì)保跟蹤服務(wù)協(xié)議范本
- 2025年小型機(jī)床項(xiàng)目提案報(bào)告模范
- 2025年專利權(quán)使用許可合同示范文本
- 2025年機(jī)動(dòng)車(chē)購(gòu)買(mǎi)合同簡(jiǎn)化版
- 人工智能在教育中的語(yǔ)文教學(xué)應(yīng)用
- 環(huán)保合規(guī)與企業(yè)風(fēng)險(xiǎn)管理
- 中國(guó)古代餐具
- 上海市嘉定一中2023年高二數(shù)學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 施工日志模板
- 消費(fèi)者起訴狀模板范文
- 醫(yī)院招標(biāo)采購(gòu)管理辦法及實(shí)施細(xì)則(試行)
- 六年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)教案-跟著節(jié)氣去探究 全國(guó)通用
- 中華人民共和國(guó)文物保護(hù)法學(xué)習(xí)課程PPT
- 2023湖南株洲市茶陵縣茶陵湘劇保護(hù)傳承中心招聘5人高頻考點(diǎn)題庫(kù)(共500題含答案解析)模擬練習(xí)試卷
- 400字作文稿紙(方格)A4打印模板
評(píng)論
0/150
提交評(píng)論