計算機基礎大作業_第1頁
計算機基礎大作業_第2頁
計算機基礎大作業_第3頁
計算機基礎大作業_第4頁
計算機基礎大作業_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

金陵科故皆院

當i實膾想告

(理工類)

課程名稱:計算機系統基礎I專業班級:

學生學號:學生姓名:

所屬院部:計算機工程學院指導教師:

2019——2020學年第1學期

金陵科技學院教務處制

實驗報告書寫要求

實臉報告原則上要求學生手寫,要求書寫工整。若因課程特點需

打印的,要遵照以下字體、字號、間距等的具體要求。紙張一律采用

A4的紙張。

實驗報告書寫說明

實臉報告中一至四項內容為必填項,包括實驗目的和要求;實臉

儀器和設備;實驗內容與過程;實驗結果與分析。各院部可根據學科

特點和實臉具體要求增加項目。

填寫注意事項

(1)細致觀察,及時、準確、如實記錄。

(2)準確說明,層次清晰。

(3)盡量采用專用術語來說明事物。

(4)外文、符號、公式要準確,應使用統一規定的名詞和符號。

(5)應獨立完成實驗報告的書寫,嚴禁抄襲、復印,一經發現,

以零分論處.

實驗報告批改說明

實驗報告的批改要及時、認真、仔細,一律用紅色筆批改。實驗

報告的批改成績采用百分制,具體評分標準由各院部自行制定。

實驗報告裝訂要求

實驗批改完畢后,任課老師將每門課程的每個實驗項目的實驗報

告以自然班為單位、按學號升序排列,裝訂成冊,并附上一份該門課程

的實驗大綱。

實驗項目名稱:數據的表示實驗學時:2

同組學生姓名:無實驗地點:

實驗日期:實驗成績:

批改教師:批改時間:

一、實驗目的和要求

熟悉數值數據在計算機內部的表示方式,掌握相關的處理語句。

二、實驗儀器和設備

硬件環境:1A-32

軟件環境:Linuxubuntul4.04,C語言,gcc

三、實驗內容與過程

3實驗內容

1.“-2<2”和"-2<2u”的結果一樣嗎?為什么?請編寫程序驗證。

2.運行下圖中的程序代碼,并對程序輸出結果進行分析。

3.運行下列代碼,并對輸出結果進行分析。

#includc<stdio.h>

voidmain()

(

unionNUM

(

inta;

charb[4];

}num;

num.a=Ox12345678;

printf("Ox%X\n",num.b[2]);

)

4.請說明下列賦值語句執行后,各個變量對應的機器數和真值各是多少?編寫一

段程序代碼并進行編譯,觀察默認情況下,編譯器是否報warningo如果有

warning信息.的話,分析為何會出現這種warning信息。

inta=2147483648;

intb=-2147483648;

intc=2147483649;

unsignedshortd=65539:

shorte=-32790;

5.編譯運行以下程序,并至少重復運行3次。

voidmain()

{

doublex=23.001,y=24.001,z=1.0:

for(inti=0;i<10;i++){

if((y-x)==z)

printf("equal.n");

else

printf("notequal\n");

x+=z;

y+=z;

printf("%d,%f,%f\nni?x,y);

}

)

要求:

(1)給出每次運行的結果截圖。

(2)每次運行過程中,是否每一次循環中的判等結果都一致?為什么?

(3)每次運行過程中,每一次循環輸出的i、x和y的結果分別是什么?為什

么?

2、實驗步驟

1.進入linux系統,在shell終端的提示符后輸入gedit,編寫C語言源程序。

gedit

輸入實驗內容1的源程序并以SAMPLE.C為文件名將文件存盤。

2.用GCC對源文件SAMPLE.C進行編譯并產生目標文件SAMPLE.O,匯編語言

程序SAMPLES

gcc-s-oSAMPLE.SSAMPLE.C

gcc-g-oSAMPLE.OSAMPLE.C

3.用GDB跟蹤執行SAMPLE。

ydbSAMPLE

4.觀察程序執行情況并記錄運行結果。

5.依照上述四個步驟,完成對其余實驗內容的操作。

四、實驗結果與分析

(1)

?無標起文智1-9?dit忘]40)1650中

打開9)▼尸1W(S)

Uncl.ude<stdtoh>

votdnatn()

n(a,L;

=(-2<2)?1:6;

c=(-2...:2u)?l:0;

pRnlf("%d\ildn".a.e);

)l

純文本了制衣符寬度:8...行8..列2干插入

#include<stdio.h>

voidmain()

(

inta,c;

a=(-2<2)?l:0;

c=(-2<2u)?l:0;

printf("%d\n%d\n",a/c);

)

O—Qysyubuntu;?/vuoyc

yscQubuntucdzuoye

ysc^ubuntu:*/zuoye$gcc-o1l.C

ysc^ubuntu:~/zuoye$./I

ysc0ubuntu:~/zuoye$|

正數的原碼,反碼,補碼都一樣。而負數在計算機里是按補碼存放和運算的。-2在內存中的

存儲方式為1111,1111,1111,1111,11111,11111,1111,111OBBPfffffffeH,最高位為

符號位,2在內存中的存儲方式為0000,0000,0000,0000,0000,0000,0000,0010B即

2H,最高位為符號位,2u在內存中存儲的方式為0000,0000,0000,0000,0000,

0000,0000,0010B即2H,最高位不再是符號位。所以-2<2是符號位的比較,即-2<2

是正確的。-2<2u是有符號數和無符號數之間的比較,此時編譯器會把有符號數自動轉無符號

數,所以-2=2。

-2<2,是有符號數的比較,即2+(-2)=fffffffeH+fffffffeH=1FFFFFFFCH=[-4|^,

最高位符號位溢出,所以證明被減數的符號是負號,即-2<2是正確的。.

有符號數和無符號數的比較。系統會自動把有符號數轉換成無符號數。

fffffffeH=4294967294D<2D(是錯誤的)=2H

gedie量打W?)

打開9)▼網

a.c

MincIude-::stc:lto.h:..

voidnatn()

unsigned廿忱a=l;

unsignedsnortb=1

,l1引i丘—-1;

tntd;

d=(a>c)?l:6;

Printf(lluniSIgnedi.n七tsd\nlhd);

d='b文)1.:o;

pri.nlf(llun5\gnedshorti.swd\n",dl);

9

<>G主文件夫a

xupeng(^xupeng-vlrtual-machine:~/a

xupengSxupeng-virtual-nachtne:-5cd./a

Yup^ng(dYup^ng.vtrtual-narhtn?7~/a$./h

bash:./b:爰有那個文件或目錄

xupeng@xupeng-vtrtual>machlne:*>/a$./b.o

bash:./b.o:沒有那個文件或目錄

xupengQxupeng-virtual-nachtne:~/d$gcc-ob

xupen9@xupeng-virtual-nachtne:~/a$.fb

unsignedintis0

unsignedshortts1

xupcng@xupeng-virtual-Rachtne:-/a$1

因為所有比int型小的數據類型(包括char,signedchacunsignedchanshort,signed

shortunsignedshort)轉換為int型。如果轉換后的數據會超山int型所能表示的范圍的話,

則轉換為unsignedint型;所以題中的c在和a比較時應該先轉換成int型,再轉換成

unsignedint型,所以此時的c為1111111111111111111111111111111(1有?守號數按

最高位符號位進行擴位)即FFFFFFFFH,此時的。為1H,顯然c大于。,所以第一次輸

出的是unsignedintisO;同理當b和c比較時,c應該轉換成int型,所以此時的c為1111

111111111111111111111111111HBFFFFH=-2147483647D,b也應該轉換成int型,

所以此時的b為00000000000000000000000000000001B=1D,顯然b>c,所以輸出

unsignedshortis1

#include<stdio.h>

Voidmain()

(

Unsignedinta=1;

Unsignedshortb=l;

Charc=-1;

Intd;

d=(a>c)?l:O;

printf('*unsignedintis%d,n”,d);

d=(b>c)?l:O;

printf(uunsignedintis%dn”,d);

)

(3)

ysc$)ubuntu:~/zuoye

yscgubuntu:~Scdzuoye

ysc^ubuntu:~/zuoyc$gcc-o1l.c

ysc^ubuntu:~/zuoye$./I

1

0

yscgubuntu:*/zuoye$gcc-o22.c

gcc:error:2.c:Nosuchfileordirectory

gcc:fatalerror:noinputfiles

compilationterminated.

ysc^ubuntu:~/zuoye$./2

bash:./2:Nosuchfileordirectory

ysc^ubuntu:~/zuoye$gcc-o22.c

gcc:error:2.c:Nosuchfileordirectory

gcc:fatalerror:noinputfiles

compilationterminated.

yscgubuntu:~/zuoye$gcc-o33.c

ysc^ubuntu:~/zuoye$./3

0x34

ysc^ubuntu:~/zuoye$

由于在union共用體當中,intQ和chcrb[4]數據公用同一段內存地址,而此時c和b

同時占用四個字節,所以當執行num.。=0x12345678;同時b也會被賦值,b的內存示意圖

如下:

b的侑87654391

b的地址--------tllQ]----------------blU----------------bl2]----------------143]--------

由上圖可知執行printf('6%X\n”,num.b[2]);會輸出0x34。現在解釋為什么會出現表中的情

況對于數組來說,下標越小地址越小,下標越大地址越大,而。=0x12345678這個值中,1

和2分別在最高位和次高位,它就會存儲在下標大的匕[3]中,以此類推,便可以得到表中的

數據。這也證明了我的32位Ubuntu是小端存儲(字數據的高字節存儲在高地址中,而字

數據的低字節則存儲在低地址中)。

(4)

d.c(-/a)-geditxn制

就打開(O)▼同

CCC.Cd.c

析IlkIuxles:tdio.h;?

)tdI'latn()

intu=2.147483648;

Int:b=-2147483548;

tntc=-2147483549;

unsignedshortd=65539;

shorte=-32790;

pii.ntf("c\n".di:

PrIntf(匕出n":.b);

p六ntf(ll%d\nJ.c:);

prtnif("£d\n":;id);

Ptntf("%d.n".e):

CT特J表符寬臣:8行14,列2

?一值ysc(pubuntu:~/zuoye

inta=2147483648;

4.c:5:3:warning:thisdecimalconstanttsunsignedonlytnisoC90[enable

bydefault]

tntb=-2147483648;

A

4.c:6:3:warning:thisdecimalconstanttsunsignedonlytnISOC90[enable,

bydefault]

intc=-2147483649;

A

4.c:7:3:warning:largeintegerimplicitlytruncatedtounsignedtype[-Wov

rflow]

unsignedshortd*65539;

A

4.c:8:3:warning;overflowininplicitconstantconversion[-Woverflow]

shorte=-32790;

A

ysc@ubuntu:~/zuoye$./4

-Z147483C48

■2147483648

2147483647

3

32746

ysc@ubuntu;?/zuoy?5

#include<stdio.h>

voidmain()

(

inta=2147483648:4個字節

intb=-2147483648;

intc=-2147483649;

unsignedshortd=65539;2個字節

shorte=-32790;2個字節

printf("%d\n",a):

printf("%d\n"zb);

printf("%d\n”,c);

printf("%d\n",d);

printf("%d\n"ze);

)

機器數就是數字在計算機中的二進制表示形式,其特點一是符號數字化,二是

其數的大小受機器字長的限制。將帶符號位的機器數對應的真正數值稱為機器數的真值

inta=2147483648的機器數是10000000000000000000000000000000B

intb=2147483648的機器數是10000000000000000000000000000000B

intc=2147483649的機器數是10000000000000000000000000000001B

unsignedshortd=65539的機器數無法表示

shorte=-32790的機器數無法表示

int類型在32位計算機中占4個字節,即32位。又因為正數的補碼是其本身,所以int

類型能表示的所有正數為:0,0000000000000000000000000000000B至IJ0,1111111

111111111111111111111111010至IJ+2147483647。而負數的補碼是除符號位外各

位取反最后加一而來。所以int類型所能表示的所有負數為:0,0000000000000000000

000000000000B(-0D的補碼)到1,111111111111111111111111111111BPB0到

-2147483647D。而32位二進制數能表示的所有值為2的32次方個,而從

-2147483647D至卜2147483647D總共是2的32次方減一個數,而少的這個數就是

10000000000000000000000000000000B(-0D的補碼),而任何數的原碼都不能在

轉換成補碼時成為這個數,我們人為的把他規定為-2147483648所以int類型的取值范圍

為-2147483648到+2147483647,所以題目中的b是正確的,并且不會發生溢出。

而題目中的a=2147483648其實已經超出int類型的最大范圍,但是

a=2147483648=2147483647+1=0,1111111111111111111111111111111B+1B=1000

0000000000000000000000000000B=-2147483648,而-2147483648又在Int類型

的取值范圍內,所以也不會溢出,如果此時打印輸出a的十進制就是-2147483648,同

理可得c=2147483649=2147483647+2=-2147483647,也不會發生溢出現象。

對于題FI中的d,由于它是無符號短整型的變量,在32位機中占兩個字節。所以d的取

值范圍為:0到65535,而65539不在這個范圍內,所以會報溢出警告。對于題目中

的e,由于它是有符號短整型的變量,在32位機中占兩個字節。所以e的取值

范圍為:-32768至IJ+32767,此時c=-32790=-32768-22=-32768+(-22)=

10000000000000000000000000000000B+1111111111111111111111111110

1001B=000101111111111111111111111111101001B=+6442450921D?+32767?

以e會報出溢出警告。

5.

Doub加雙精度浮點數,按照IEEE-754標準,雙精度浮點數有效數字到小數點后15位,

x=23001,可表示為2300100000000001:y=24001000000000001;

31.001會表示成31.001000000000001,32.001會表示成32.001000000000005,于是就不相等

了。結尾的那個1或5都是由于有限精度無法精確的小數造成的,

(1)

A

$)ubuillu.?/,uuyH

o55.c

equaiHHIHHHHIiHII

I?5_|QO1OO3,?6_0()1(X)5

CcllKlI

26.0GI0()0KMX)

3,Z7.001003,28.(X)100C

hqiuil|

M)l()()?9-00100C

□01(001加

001009,31.00100(:

\31.0()1(X)3.32.()0100(:

,Lieciii

8.32.|O()1OO^I

9,33.1()1003,卜由OOI

ysc@ubunlu:"/zuoy心

9,33-(X)1()0()-091

/sc@ubuntu;1uoyeS

I.24.('J0l000”乙

25.(X)IOCX).26.()91()(]

001000.27

GI000.28.09I(

)010()0129.

)01000,

30.06IOOf.1,3ICTTi9

061000,32-09100

001(X)0.33.00皿

33?01000,3493Q

c@ubuntu:zuoye|

?-6ysc(3)ubuntu:~/zuoye

equal

9,33.001600,34.001000

ysc^ubuntu:~/zuoye$./5

equal

0,24.091000,25.001000

equal

1,25.001000,26.001000

equal

2,26.091600.27.001000

equal

3,27.001606,?8.901000

equal

4,28.091000,29.901000

equal

5,29.001000,30.901606

equal

6,30.091600,31.901000

equal

7,31.001600,32.901000

notequal

8,32.001000,33.001000

equal

9,33.001000,34.001000

(2)

每次運行過程中,每一次循環輸出的i、x和v的結果分別是

i=0,x=24,00by=25.001;

i=bx=25.001,y=26.001

i=2,x=26.001,y=27.001

i=3,x=27.001zy=28.001

i=4,x=28.001zy=29.001

i=5,x=29.001,y=30.001

i=6.x=30.001,y=31.001

i=7/x=31.00Ly=32.001

i=8zx=32.001,y=33.001

i=9zx=33.001zy=34.001

五、實驗思考題和實驗心得。

1、思考題

1.完成書上第二章習題中第40題,提交代碼,并在程序中以十六進制形式打印變

量u的機器數。

floatfpower2(intx)

unsignedexp,frac,u;

if(x<-149)

(

exp=O;

frac=O;

)

elseif(x<-126)

(

exp=0;

frac=0x400000?(-x-127);

)

elseif(x<128)

(

exp=x+127;

frac=0;

)

else{

exp=255;

frac=0;

)

u=exp?23||frac;

returnu2f(u);

)

2、實驗心得

了解了linux的基本糜作。理解了編譯執行,反編譯的過程和操作步驟。理解了當計算

機面對C語言時,計算機是如何表示和編譯的。我們可以查看編譯過程來了解計算機的思

想。

還需繼續努力。

實驗項目名稱:挑俅.程序的編相編暹和調試實驗學時:2

同組學生姓名:無實驗地點:

實驗日期:實驗成績:

批改教師:批改時間:

一、實驗目的和要求

熟悉開發環境、掌握開發和調試的基本過程以及工具。

二、實驗儀器和設備

硬件環境:IA-32

軟件環境:Linuxubuntuld.04,C語言,gcc

三、實驗過程

1、實驗內容

以卜程序實現了排序和求和算法,程序源碼如卜.圖所示。請根據提供的圖片輸入源

程序文件,并保存為相應的,c和.h文件,然后遂行編譯、鏈接,調試。bubblcsort.h:

1#include<stdio.h>

voidbubblesort(ints[],int|n);

bubblesort.c:

1#include"bubblesort.hn

2-voidbubblesort(ints[],intn){

3inti

4for(i=0;i<n;i++){

for(j=0;j<n-l-i;j++){

6if(s[j]>s[j+l]){

7t=s[j];

s[j]=s[j+l];

9s[j+l]=t;

10}

11}

12}

13[)

add.h:

1#include<stdio.h>

2intadd(intn);

add.c:

1#includeHadd.h"

2-intadd(ints[],intn){

intresult=0;

4inti;

for(i=0;i<n;i++){

6result+=s[i];

7}

returnresult;

9}

priniresult.h:

1#include<stdio.h>

2voidprintArray(ints[]^intn^char*str);|

printresult.c:

1#include"printresult.h"

2-voidprintArray(ints[],intn,char*str){

3printf("%s",str);

4inti;

5for(i=0;i<n;i++){

6printf("%5d",s[i]);

7}

8printf("\nn);

9)1

rnain.c;

1#include"add-h*'

2#include"bubblesort.h"

3#include"printresult.h"

4#defineboolchar

5#definetrue1

6#definefalse0

7-voidmain(){

8inta[10],i;

9intb[10];

10printf(“請輸入個數據:;

11for(i=0;i<10;i++){

12scanf("%d",&a[i]);

13b[i]=a[i];

14}

15boolflag=true;

16while(flag==true){

17printf("\nl.冒泡排序\n2.求和

18printf(“\n請選擇序號:”力

19intnumber=0;

20scanf("%d'\&number);

21intsum=0;

22switch(number)

23{

24case1:

25bubblesort(a,10);

26break;

27case2:

28sum=add(a,10);

29printf(“\n數說求和結果為:%5d\n",sum);

30break;

31case3:

32prirrtArray(b,T6J\n原始數組為:");

33prirrtArray(a,10,”\ri排序后數組為:”);

34break:

case4:

36flag=false;

37break;

default:

39Pin"(”\n請選擇正確醵曼1遁繼續J");

40break;

41}

42}

43printf("\n");

44}

冒泡排序求和打印結果退出

請選擇序號

原始數組為

數組求和結果為

排序后數組為

請選擇正確的序號!請繼續!

2、實驗步驟

1.進入linux系統,在shell終端的提示符后輸入gedit,編寫C語言源程序。

2.將源程序文件進行預處理、編譯、匯編和鏈接,以生成可執行文件。

⑴使用gcc直接生成可執行文件

gcc-omainmain.cbubblesort.cadd.cprintresult.c

(2)首先生成可重定位目標文件(.。文件),再鏈接成可執行文件。

首先,使用gccy……命令將所有.c文件編譯成.。文件(可以用-。選項命

名輸出的可重定位目標文件),然后再用Id命令進行鏈接,以生成可執行目標

文件。

(用Id命令鏈接時要包含很多系統庫,可以用gcc-vmain.c來查看系統鏈接

需要哪些庫,把collect2換成Id,生成的/tmp/ccBCUOrh.o即為mian.c編譯出

來的main.。文件,刪掉該句替換成以下命令:-omainmain.obubblesort.。

add.oprintresult.o-emain)

Id-omainmain.obubblesort.oadd.oprintresult.o-emain—sysroot=/-build-id—eh-frame-hdr-m

elCi386—hash-style=gnu-as-needed-dynamic-linker/lib/ld-linux.so.2-zrelro

/usr/lib/gcc/i686-linux-gr.u/4.8/../-7-/i386-linux-gnu/crtl.o

/usr/lib/gcc/i686-linux-gru/4.8i386-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/../-7--/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-1c-Igcc-as-needed-lgcc_s—no-as-needed

/usr/lib/gcc/i686-linux-gnu/4.8/crtend.o/usr/lib/gcc/i686-iinux-gnu/4.8/../--/--/i386-linux-gnu/crtn.o

上述過程如下圖所示:

ericson@ericson-virtual-machine:~/wenjian3$gcc-cmain.c

ertcson@ertcson-virtual-machine:~/wenjian3$gcc-cbubblesort.c

ericson@ericson-virtual-machine:~/wenjian3$gcc-cadd.c

ertcson@ertcson-virtual-machine:~/wenjian3$gcc-cprtntresult.c

ericson@ericson-virtual-machine:~/wenjian3$Id-omainmain.obubblesort.oadd.o

printresult.o-enatn--sysroot=/--build-id--eh-frame-hdr-melf_t3B6--hash-

style=gnu--as-needed-dynamic-linker/lib/ld-Iinux.so.2-zrelro/usr/lib/gcc/i

686-linux-gnu/4.8/../../../1386-Linux-gnu/crrl.o/usr/lib/gcc/i686-ltnux-gnu/4.8

/../../../i386-linux-gnu/crti.o/usr/lib/gcc/i686-linux-gnu/4.8/crtbegin.o-L/us

r/ltb/gcc/t686-ltnux-gnu/4.8-L/usr/lib/gcc/i686-linux-gnu/4.8/../../../t386-l.in

ux-gnu-L/usr/lib/gcc/i686-linux-gnu/4.8/../lib-L/lib/i386-linux-gnu-

L/ltb/../lib-L/usr/ltb/t386-linux-gnu-L/usr/ltb/../lib-L/usr/ltb/gcc八686-ltn

ux-gnu/4.8/../../..-Igcc--as-needed-lgcc_s--no-as-needed-1c-Igcc--as-need

ed-lgcc_s--no-as-needed/usr/ltb/gcc/1686-linux-gnu/4.8/crtend.o/usr/lib/gcc/

t686-ltnux-gnu/4.8/..八386-ltnux-gnu/c「tn.o

ertcson@ertcson-virtual-machine:~/wenjian3$./main

請輸入1。個數據:

10987654321

1.冒泡排序

2.求和

3.打印排序結果______________________________________________________________________

3.使用OBJDUMF命令進行反匯編(請自行查閱OBJDUMP命令的使用方法)

例如,可使用“objdump-S''命令進行反匯編

objdump-Smain.o:將main.o進行反匯編

4.使用GDB命令進行各種調試(GDB命令參見教材附錄C,也可自行查閱區上相

關文檔)

調試之前首先用“gcc-g”命令生成調試信息,否則調試失敗。

gcc-g-orrainmain.cbubblesort.cadd.cprintresult.c

gdbmain

要求用各種GDB命令對程序進行調試(例如用inforegisters杳看寄存器內

容)。

四、實驗結果與分析

1.編寫相應的.c和.h文件

?incl

void

linti

forfi

add.cadd.hbubblesort.c

?incl#incl

void?incl

#incl

bubblesorthmainmain.c

tineI-#incl

voidvoid

Rrint

inti

printresult.cprintresult.h

2.使用gcc直接生成可執行文件

-Cwyx@ubuntu:?/1

@ubuntu:*$cd./I

@ubuntu:~/l$gcc-onain.onatn.cbubblesort.cprintresult.c|

ubuntu:~/l$gcc-omainmain.oadd.obubblesort.oprtntresult.o|

tinclItfinEI:-I?incl

inta1intavoid

intrliti

inti

add.cadd.hbubblesort.c

?incl-

find

void

?incl

令#incl

bubblesart.hmalnimaln.c

print戊sult.ltPFintrwult.h

3.運行main結果

4.使用OBJDUMP命令進行反匯編

naIn.foniHgilE^

0x4(%csp),%cd

s()xfffffff()?i;esp

-0x4(%ecx)^^B

,'"'、12!chi

勸x74,e

句s:0x14,cax

%eax|.-e|xc(%ebp

IsOxc::1%esp^^^H

so

[lai..n+0x2

$0xiog^j

賃勸,-6x64(%ebp)

5.使用GDB命令進行各種調試.調試之前首先用“gcc-g”命令生成調試信

gcc-g-omainnain.cbubblesort,cadd.cprintresult,c

溫馨提示

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

評論

0/150

提交評論