《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》實(shí)驗(yàn)指導(dǎo)書(共7頁(yè))
-
資源ID:51663160
資源大?。?span id="6wr3ppi" class="font-tahoma">266.50KB
全文頁(yè)數(shù):7頁(yè)
- 資源格式: DOC
下載積分:20積分
快捷下載
會(huì)員登錄下載
微信登錄下載
微信掃一掃登錄
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說(shuō)明有答案則都視為沒有答案,請(qǐng)知曉。
|
《計(jì)算機(jī)系統(tǒng)基礎(chǔ)》實(shí)驗(yàn)指導(dǎo)書(共7頁(yè))
精選優(yōu)質(zhì)文檔-傾情為你奉上計(jì)算機(jī)系統(tǒng)基礎(chǔ)指導(dǎo)書Introduction to Computer Systems實(shí)驗(yàn)1 數(shù)據(jù)的表示實(shí)驗(yàn)序號(hào):1 實(shí)驗(yàn)名稱:數(shù)據(jù)的表示適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 時(shí) 數(shù):2學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康氖煜?shù)值數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的表示方式,掌握相關(guān)的處理語(yǔ)句。2、實(shí)驗(yàn)內(nèi)容1. “-2 < 2”和“-2 < 2u”的結(jié)果一樣嗎?為什么?請(qǐng)編寫程序驗(yàn)證。2. 運(yùn)行下圖中的程序代碼,并對(duì)程序輸出結(jié)果進(jìn)行分析。3. 運(yùn)行下列代碼,并對(duì)輸出結(jié)果進(jìn)行分析。#include <stdio.h>void main()union NUMint a;char b4; num;num.a = 0x;printf("0x%Xn", num.b2);4. 請(qǐng)說(shuō)明下列賦值語(yǔ)句執(zhí)行后,各個(gè)變量對(duì)應(yīng)的機(jī)器數(shù)和真值各是多少?編寫一段程序代碼并進(jìn)行編譯,觀察默認(rèn)情況下,編譯器是否報(bào)warning。如果有warning信息的話,分析為何會(huì)出現(xiàn)這種warning信息。int a = ;int b = -;int c = ;unsigned short d = 65539;short e = -32790;5. 編譯運(yùn)行以下程序,并至少重復(fù)運(yùn)行3次。void main() double x=23.001, y=24.001, z=1.0;for (int i=0; i<10; i+) if (y-x)=z) printf("equaln");else printf("not equaln"); x += z; y += z; printf("%d, %f , %fn”, i, x, y); 要求:(1)給出每次運(yùn)行的結(jié)果截圖。(2)每次運(yùn)行過程中,是否每一次循環(huán)中的判等結(jié)果都一致?為什么?(3)每次運(yùn)行過程中,每一次循環(huán)輸出的i、x和y的結(jié)果分別是什么?為什么?3、實(shí)驗(yàn)步驟1. 進(jìn)入linux系統(tǒng),在shell終端的提示符后輸入gedit,編寫C語(yǔ)言源程序。gedit輸入實(shí)驗(yàn)內(nèi)容1的源程序并以SAMPLE.C為文件名將文件存盤。2. 用GCC 對(duì)源文件SAMPLE.C進(jìn)行編譯并產(chǎn)生目標(biāo)文件SAMPLE.O,匯編語(yǔ)言程序SAMPLE.S。gcc s o SAMPLE.S SAMPLE.Cgcc g o SAMPLE.O SAMPLE.C3. 用GDB跟蹤執(zhí)行SAMPLE。gdb SAMPLE4. 觀察程序執(zhí)行情況并記錄運(yùn)行結(jié)果。5. 依照上述四個(gè)步驟,完成對(duì)其余實(shí)驗(yàn)內(nèi)容的操作。4、實(shí)驗(yàn)思考題1. 完成書上第二章習(xí)題中第40題,提交代碼,并在程序中以十六進(jìn)制形式打印變量u的機(jī)器數(shù)。實(shí)驗(yàn)2 排序程序的編輯、編譯和調(diào)試實(shí)驗(yàn)序號(hào):2 實(shí)驗(yàn)名稱:排序程序的編輯、編譯和調(diào)試適用專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 時(shí) 數(shù):2學(xué)時(shí)1、實(shí)驗(yàn)?zāi)康氖煜ら_發(fā)環(huán)境、掌握開發(fā)和調(diào)試的基本過程以及工具。2、實(shí)驗(yàn)內(nèi)容以下程序?qū)崿F(xiàn)了排序和求和算法,程序源碼如下圖所示。請(qǐng)根據(jù)提供的圖片輸入源程序文件,并保存為相應(yīng)的.c 和.h 文件,然后進(jìn)行編譯、鏈接,調(diào)試。bubblesort.h:bubblesort.c:add.h:add.c:printresult.h:printresult.c:main.c:3、實(shí)驗(yàn)步驟1. 進(jìn)入linux系統(tǒng),在shell終端的提示符后輸入gedit,編寫C語(yǔ)言源程序。2. 將源程序文件進(jìn)行預(yù)處理、編譯、匯編和鏈接,以生成可執(zhí)行文件。(1) 使用gcc 直接生成可執(zhí)行文件gcc -o main main.c bubblesort.c add.c printresult.c(2) 首先生成可重定位目標(biāo)文件(.o 文件),再鏈接成可執(zhí)行文件。首先,使用gcc c 命令將所有.c 文件編譯成.o 文件(可以用-o 選項(xiàng)命名輸出的可重定位目標(biāo)文件),然后再用ld 命令進(jìn)行鏈接,以生成可執(zhí)行目標(biāo)文件。(用ld命令鏈接時(shí)要包含很多系統(tǒng)庫(kù),可以用gcc v main.c來(lái)查看系統(tǒng)鏈接需要哪些庫(kù),把collect2 換成ld,生成的/tmp/ccBCU0rh.o 即為mian.c 編譯出來(lái)的main.o 文件,刪掉該句替換成以下命令:-o main main.o bubblesort.o add.o printresult.o -e main)ld -o main main.o bubblesort.o add.o printresult.o -e main -sysroot=/ -build-id -eh-frame-hdr -m elf_i386 -hash-style=gnu -as-needed -dynamic-linker /lib/ld-linux.so.2 z relro /usr/lib/gcc/i686-linux-gnu/4.8/./././i386-linux-gnu/crt1.o /usr/lib/gcc/i686-linux-gnu/4.8/./././i386-linux-gnu/crti.o /usr/lib/gcc/i686-linux-gnu/4.8/crtbegin.o -L/usr/lib/gcc/i686-linux-gnu/4.8 -L/usr/lib/gcc/i686-linux-gnu/4.8/./././i386-linux-gnu -L/usr/lib/gcc/i686-linux-gnu/4.8/././././lib -L/lib/i386-linux-gnu -L/lib/./lib -L/usr/lib/i386-linux-gnu -L/usr/lib/./lib -L/usr/lib/gcc/i686-linux-gnu/4.8/././. lgcc -as-needed -lgcc_s -no-as-needed -lc -lgcc -as-needed -lgcc_s -no-as-needed /usr/lib/gcc/i686-linux-gnu/4.8/crtend.o /usr/lib/gcc/i686-linux-gnu/4.8/./././i386-linux-gnu/crtn.o上述過程如下圖所示:3.使用OBJDUMP命令進(jìn)行反匯編(請(qǐng)自行查閱OBJDUMP命令的使用方法)例如,可使用“objdump S”命令進(jìn)行反匯編objdump S main.o:將main.o進(jìn)行反匯編4.使用GDB命令進(jìn)行各種調(diào)試(GDB命令參見教材附錄C,也可自行查閱網(wǎng)上相關(guān)文檔)調(diào)試之前首先用“gcc g”命令生成調(diào)試信息,否則調(diào)試失敗。gcc -g -o main main.c bubblesort.c add.c printresult.cgdb main要求用各種GDB命令對(duì)程序進(jìn)行調(diào)試(例如用info registers 查看寄存器內(nèi)容)。4、實(shí)驗(yàn)思考題1. 分析同一個(gè)源程序在不同機(jī)器上生成的可執(zhí)行目標(biāo)代碼是否相同。提示:從多個(gè)方面(如ISA、OS 和編譯器)來(lái)分析。2. 你能在可執(zhí)行目標(biāo)文件中找出函數(shù)printf ()對(duì)應(yīng)的機(jī)器代碼段嗎?能的話,請(qǐng)標(biāo)示出來(lái)。3. 為什么源程序文件的內(nèi)容和可執(zhí)行目標(biāo)文件的內(nèi)容完全不同?制訂人: 朱 俊 (制訂日期:2016年08月)審訂人: (審訂日期:2016年 08 月)專心-專注-專業(yè)