• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Dophi's Technology Blog

            享受知識(shí)共享帶來(lái)的愉快

            匯編,讓你更拉風(fēng)

            這篇文章我并不打算一頭栽進(jìn)細(xì)節(jié)中向你干癟無(wú)味地闡述匯編指令,因?yàn)閷戇@邊文章的目的實(shí)際上是為了讓你更好的使用c++,對(duì)于沒(méi)有接觸匯編的c++的程序員這篇文章很是值得一讀,因?yàn)樵趯W(xué)習(xí)匯編后我覺(jué)得寫c++代碼更有把握了,同時(shí)還有一個(gè)好處,我的調(diào)試能力提高了不少,一切都基于我自己的學(xué)習(xí)經(jīng)歷,相信沒(méi)有什么比實(shí)踐經(jīng)驗(yàn)更有說(shuō)服力了,準(zhǔn)備好了嗎?讓我們進(jìn)入正題。
            c++中其實(shí)有很多c沒(méi)有的特性,即使是c,所謂的函數(shù)你真正搞清楚運(yùn)作機(jī)制沒(méi)有?變量的讀寫本質(zhì)又是怎樣的?再提升到c++上來(lái)說(shuō),構(gòu)造函數(shù)什么時(shí)候被調(diào)用?c++的對(duì)象到底是怎么運(yùn)作的?虛函數(shù)呢?我承認(rèn)我是故意用這么多連續(xù)的問(wèn)句在造勢(shì),然后這么無(wú)非為了形成一種反差,因?yàn)楫?dāng)你粗略的學(xué)習(xí)下匯編后,你完全就有能力搞清楚這一切的問(wèn)題,再多的問(wèn)號(hào)到時(shí)候都會(huì)被你畫(huà)上完美的句號(hào),強(qiáng)調(diào)一下,解決這一切問(wèn)題,你需要的就是粗略的學(xué)習(xí)下匯編!原因很簡(jiǎn)單,高級(jí)語(yǔ)言編譯出的匯編代碼大部分不會(huì)涉及到什么高深的匯編技巧,我們需要掌握的就是一些基本的匯編指令,以及匯編的基本語(yǔ)法,就有了足夠的能力去把上面說(shuō)的問(wèn)題一一搞定。好的讓我給你一個(gè)學(xué)習(xí)匯編的大綱:

            一. 在網(wǎng)上搜“匯編快速入門”這種關(guān)鍵字,然后讀幾篇文章,對(duì)匯編有個(gè)大致的了解,驗(yàn)收準(zhǔn)則就是知道m(xù)ov eax, 2這種語(yǔ)句實(shí)際就是高級(jí)語(yǔ)言中讀寫變量的中間步驟,cmp eax, ebx這種語(yǔ)句會(huì)設(shè)置標(biāo)志位寄存器,還有mov eax, fs:[0],這條語(yǔ)句是學(xué)SEH機(jī)制時(shí)遇到的,fs:[0]保存的是一個(gè)線程環(huán)境結(jié)構(gòu)體,這條語(yǔ)句不用作為驗(yàn)收準(zhǔn)則,我是順便說(shuō)說(shuō)而已- -!


            二. 這個(gè)很重要了,也就是函數(shù)調(diào)用在匯編層如何實(shí)現(xiàn),驗(yàn)收準(zhǔn)則是:知道函數(shù)傳參數(shù)的兩種方式,包括棧傳參,寄存器傳參,寄存器傳參數(shù)的應(yīng)用就是c++中每個(gè)成員函數(shù)都會(huì)被傳入一個(gè)this指針,實(shí)際就是用的寄存器傳參。然后是知道棧幀的概念,知道現(xiàn)場(chǎng)保護(hù)的概念,實(shí)際上我這段話里已經(jīng)有很多關(guān)鍵字可以用來(lái)在網(wǎng)上搜了,絕對(duì)可以找到很多詳細(xì)資料。

            當(dāng)這兩大點(diǎn)你覺(jué)得你已經(jīng)有知識(shí)儲(chǔ)備了,那么我們就可以踏上實(shí)踐的征途了!我假設(shè)你用的是vc,你可以隨意寫一些程序,但是要保證有自己寫的函數(shù)的調(diào)用,然后讓程序在調(diào)試模式下跑起來(lái),再然后轉(zhuǎn)到匯編代碼的形式,基本上,現(xiàn)在已經(jīng)有足夠的環(huán)境聯(lián)系你的讀匯編代碼的能力了,到這里就沒(méi)什么好的方法了,不停的讀吧,不明白就查資料,然后再讀,反復(fù)幾次,效果自然就出來(lái)了。等你有能力看明白函數(shù)調(diào)用究竟是怎么一回事,基本上你就可以試著去寫點(diǎn)c++代碼來(lái)解讀了!因?yàn)樵谀憷斫夂瘮?shù)如何實(shí)現(xiàn)的過(guò)程中,你對(duì)匯編編程的方式已經(jīng)有了完整的認(rèn)識(shí),雖然不細(xì)致,但是那又怎么樣?能看明白就行了,以后有遇到什么細(xì)節(jié)問(wèn)題,也不過(guò)就是查查資料而已。

            這篇玩意可能沒(méi)能讓你哪怕學(xué)到一點(diǎn)匯編的知識(shí),也沒(méi)能讓你對(duì)c++有更深刻的理解,但是至少我慫恿你學(xué)匯編成功了,不是嗎?  

            posted on 2009-01-10 02:50 dophi 閱讀(2046) 評(píng)論(4)  編輯 收藏 引用

            Feedback

            # re: 匯編,讓你更拉風(fēng) 2009-01-10 10:02 Kevin Lynx

            沙發(fā)  回復(fù)  更多評(píng)論   

            # re: 匯編,讓你更拉風(fēng) 2009-01-11 01:16 Tony Bai

            其實(shí)匯編好比打開(kāi)了了解計(jì)算機(jī)底層運(yùn)行模型的一扇大門,進(jìn)了這扇門很多東西自然融會(huì)貫通了。  回復(fù)  更多評(píng)論   

            # re: 匯編,讓你更拉風(fēng) 2009-01-12 00:07 silvasaga

            有些道理~ 我的經(jīng)驗(yàn)就它可以調(diào)試出一些糾結(jié)的錯(cuò)誤  回復(fù)  更多評(píng)論   

            # re: 匯編,讓你更拉風(fēng) 2009-01-23 10:55 七星重劍

            @silvasaga
            好文章,我開(kāi)始學(xué)習(xí)匯編  回復(fù)  更多評(píng)論   



            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久亚洲美女精品国产精品| 久久婷婷人人澡人人| 996久久国产精品线观看| 久久精品国产免费一区| 午夜精品久久久久成人| 亚洲AV乱码久久精品蜜桃| 很黄很污的网站久久mimi色 | 狠狠色丁香久久婷婷综合蜜芽五月| 久久久高清免费视频| 久久精品国产91久久麻豆自制| 久久有码中文字幕| 97精品国产91久久久久久| 2021国内久久精品| 久久精品国产精品亜洲毛片 | 国产香蕉久久精品综合网| 久久精品aⅴ无码中文字字幕不卡| 久久久久国产一级毛片高清板| 亚洲av成人无码久久精品| 香蕉久久AⅤ一区二区三区| 久久综合狠狠综合久久激情 | 亚洲AV无码成人网站久久精品大| 欧美成a人片免费看久久| 久久最新精品国产| 97久久精品无码一区二区| 久久AV无码精品人妻糸列| 久久综合亚洲色HEZYO国产 | 一级做a爰片久久毛片16| 久久久久AV综合网成人| 少妇内射兰兰久久| 久久免费的精品国产V∧| 精品综合久久久久久97| 久久久久久久女国产乱让韩 | 久久婷婷五月综合97色| 久久精品国产99国产精品亚洲| 亚洲精品NV久久久久久久久久| 久久人人爽人爽人人爽av| 久久精品亚洲福利| 久久亚洲高清综合| 伊人色综合九久久天天蜜桃 | 久久人人爽爽爽人久久久| 色诱久久久久综合网ywww|