亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        匯編語言在C語言學(xué)習(xí)中的應(yīng)用

        2017-05-24 15:59:14曹摯
        青年時代 2016年23期
        關(guān)鍵詞:匯編語言符號語言

        曹摯

        摘 要:匯編語言是和機器語言一一對應(yīng)的一種符號語言。通過匯編語言能夠看到程序執(zhí)行的全過程。通過查看高級語言(這里以C語言為例)對應(yīng)的匯編語句,可以更加深入地理解程序的執(zhí)行步驟。本文通過一個C語言表達式的例子來說明利用匯編指令能夠解釋C語言中晦澀難懂的語句的執(zhí)行過程。

        關(guān)鍵詞:匯編語言;機器語言;符號語言;高級語言

        一、引言

        在C語言的學(xué)習(xí)過程中,不同的讀者會使用不同的編譯器進行程序的運行和調(diào)試,不同的C語言編譯器由于開放廠商不同,對于C語言的某些晦澀難懂的表達式產(chǎn)生不同的結(jié)果。盡管這些問題只占C語言學(xué)習(xí)過程中的小部分,但是對于C語言的初學(xué)者來說會有學(xué)習(xí)障礙并產(chǎn)生畏難情緒。目前很多編譯器都有一個反匯編功能。這里的反匯編特指將C程序源代碼反向編譯成匯編語言的代碼。由于匯編語言和機器語言是一一對應(yīng)的,因此通過匯編語言能夠看到對應(yīng)的C語言代碼在機器中的運行全過程,這個過程僅僅通過C程序代碼來看是不夠清晰的。本文以一個表達式的例子來說明反匯編后的語句能夠解釋C代碼中的疑難問題。特別說明的是這里需要讀者對匯編語言有簡單的了解。

        二、匯編語言與高級語言

        計算機能夠識別的只有二進制的機器指令,然而由于機器指令繁瑣且難懂,因此產(chǎn)生了一種符號語言即匯編語言。匯編語言用一些常見的英文字母和數(shù)據(jù)表示一個指令,同時匯編語言中的匯編指令與機器指令是一一對應(yīng)的,而目前流行的高級語言是做不到的。匯編語言是機器語言的助記符,在各種計算機語言中,除了機器語言,匯編語言是執(zhí)行速度最快的語言,所占的內(nèi)存空間也很小。匯編語言曾經(jīng)是非常流行的程序設(shè)計語言,但是隨著軟件規(guī)模的不斷增長,人們對于軟件開發(fā)的進度和效率的要求越來越高,匯編語言顯得有些力不從心,高級語言就逐漸代替了匯編語言。匯編語言的應(yīng)用逐漸轉(zhuǎn)向了嵌入式領(lǐng)域和工業(yè)控制領(lǐng)域。但是高級語言并不能完全代替匯編語言,匯編語言能夠最大限度地發(fā)揮硬件的性能。

        我們經(jīng)常接觸的C語言、C++語言、Java語言、C#語言都屬于高級語言的范疇,高級語言和機器語言有一定的鴻溝,它屬于偏向人類自然語言的一種計算機語言。高級語言中的語句類似于數(shù)學(xué)表達式,人們更加容易理解,因此高級語言成為了目前主流的計算機語言。尤其是近些年來,面向?qū)ο蟮乃枷肽軌蚋訙?zhǔn)確地模擬了自然界的行為,因此面向?qū)ο蟮母呒壵Z言(如C++、Java、C#)成為了軟件設(shè)計的主流語言。

        三、一個例子

        這里舉一個C語言的例子,程序輸出由三個自增運算符相加后的結(jié)果。運行的環(huán)境是VC++6.0。這里有必要說明的是,該語句在不同的編譯器下面可能會產(chǎn)生不同的結(jié)果。而對于不同結(jié)果的解釋則要通過將C語言轉(zhuǎn)換成對應(yīng)的匯編語言才能夠解釋清楚。限于篇幅,這里只將程序的核心語句列出:

        int i = 1; int s; s = (++i) + (++i) + (++i); printf("%d\n", s);

        很多初學(xué)者看到這個表達式,不假思索地就會得出6,因為他們認為i初始值為1,自增后都為2,因此結(jié)果為6。還有一部分人想得深入一些,他們認為編譯器會先計算第一個++i,i自增以后為2,然后計算第二個++i,自增后i的值是3,最后計算第三個++i,得到4,計算2+3+4值為9。這種想法看似合理,然而通過編譯器VC++6.0運行后的結(jié)果是10。這個結(jié)果讓人無法理解,這里只有通過該表達式對應(yīng)的匯編語言才能解釋清楚。通過VC++6.0中的反編譯工具,得到了語句s = (++i) + (++i) + (++i)所對應(yīng)的匯編語言如下:

        mov ecx, dword ptr[ebp-8]

        add ecx, 1

        mov dword ptr [ebp-8], ecx

        mov edx, dword ptr [ebp-8]

        add edx, 1

        mov dword ptr [ebp-8], edx

        mov eax, dword ptr [ebp-8]

        add eax, dword ptr [ebp-8]

        mov ecx, dword ptr [ebp-8]

        add ecx, 1

        mov dword ptr [ebp-8], ecx

        add eax, dword ptr [ebp-8]

        mov dword ptr [ebp-0Ch], eax

        從對應(yīng)的匯編語言中可以看出,VC++對該語言進行了優(yōu)化。先算的是前兩個++i,即此時i的值為3,前后兩個i都為3。然后相加后再計算第三個++i,此時i的值為4,這樣最后的結(jié)果就是3+3+4的和為10,和程序運行后的結(jié)果一致。這里體現(xiàn)出了匯編的思維,而不僅僅是用C語言的語法來解釋。

        四、總結(jié)與展望

        通過前面的例子可以看出,在學(xué)習(xí)C語言之前,適當(dāng)了解一些匯編語言的語法和計算機底層硬件的知識是大有好處的,因為匯編語言和機器語言能夠做到一一對應(yīng),而高級語言則無法做到,因此將高級語言(如C語言)通過編譯器轉(zhuǎn)化成匯編語言,可以清晰地看到程序在機器上的運轉(zhuǎn)過程。對于程序中含義模糊的語句就可以一目了然了。通過上面的例子也可以看出,學(xué)習(xí)C語言最好要有點匯編語言的思維,C語言里面晦澀難懂的語句可以通過其對應(yīng)的匯編語言來解釋。另外學(xué)習(xí)匯編語言可以讓你真正了解計算機,理解高級語言的本質(zhì)與真諦。對于一個全面了解微機原理的程序員,匯編語言是必修語言。

        猜你喜歡
        匯編語言符號語言
        高等學(xué)校計算機專業(yè)課程教學(xué)改革實踐——以匯編語言與接口技術(shù)課程為例
        計算機教育(2020年5期)2020-07-24 08:52:50
        初中數(shù)學(xué)符號語言教學(xué)策略
        符號語言在建筑設(shè)計中的應(yīng)用
        鋒繪(2019年8期)2019-10-08 03:46:38
        匯編語言與C語言的混合程序設(shè)計技術(shù)研究
        電子制作(2019年10期)2019-06-17 11:45:16
        數(shù)學(xué)教育中的符號語言及其教學(xué)
        符號語言在平面設(shè)計中的價值體現(xiàn)
        藝術(shù)家(2018年2期)2018-01-24 16:18:46
        提高《匯編語言程序設(shè)計》教學(xué)效率的思考與實踐
        高中數(shù)學(xué)教學(xué)中符號語言的學(xué)習(xí)
        試論匯編語言與C語言的混合程序設(shè)計技術(shù)
        電子世界(2015年18期)2015-03-26 22:36:05
        初中數(shù)學(xué)符號語言學(xué)習(xí)及教學(xué)研究
        无码人妻久久一区二区三区蜜桃| 亚洲人成网站18男男| 久草精品手机视频在线观看| 亚洲精品国产成人久久av盗摄 | 国产情侣一区在线| 国产成年女人特黄特色毛片免| 日本一区二区不卡在线| 内射人妻无套中出无码| 双腿张开被9个男人调教| 波多野结衣在线播放一区| 绿帽人妻被插出白浆免费观看| 麻豆精品在线视频观看| 免费不卡无码av在线观看| 九一九色国产| 亚洲熟妇网| 久久精品国产亚洲av调教| 色久悠悠婷婷综合在线| 亚洲熟妇丰满多毛xxxx| 国产精品麻豆欧美日韩ww| 在线亚洲AV不卡一区二区| 蜜桃视频永久免费在线观看| 水蜜桃在线观看一区二区 | 国产91一区二这在线播放| 日本一区二三区在线中文| 变态另类人妖一区二区三区| 欧美人伦禁忌dvd放荡欲情 | 亚洲国产精品无码久久| www插插插无码免费视频网站| 校花高潮一区日韩| 亚洲精品一区二区三区在线观| 午夜熟女插插xx免费视频| 亚洲av之男人的天堂网站| 日本高清一区二区不卡视频| 一区二区三区免费自拍偷拍视频| 亚洲av无码国产精品色| 三年在线观看免费大全下载| 91精品国产免费久久久久久青草 | 亚洲黄色尤物视频| 亚洲无人区乱码中文字幕| 色欲色香天天天综合网www| 久久国产劲暴∨内射|