卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

程序員為什么要學習匯編語言?

網(wǎng)友解答: 匯編的作用有很多,這里我們更偏終于對高級語言的理解,高級語言C語言、C++語言有很多概念,如果我們懂匯編,看懂每一行代碼編譯器生成的匯編代碼,我們就能知道這行代碼計算機在做什

網(wǎng)友解答:

匯編的作用有很多,這里我們更偏終于對高級語言的理解,高級語言C語言、C++語言有很多概念,如果我們懂匯編,看懂每一行代碼編譯器生成的匯編代碼,我們就能知道這行代碼計算機在做什么,從本質(zhì)上理解高級語言。匯編是高手的必經(jīng)之路。

從事PC端、手機端開發(fā)的程序員,若要了解自己用高級語言編寫的程序怎樣與計算機硬件打交道的,需要掌握匯編語言,了解機器語言(二進制組成的語言)。如果打算從事安全相關(guān)行業(yè)的除了了解這些知識外,還需要了解匯編與二進制之間對應(yīng)的關(guān)系,如2-1-1圖:

圖2-1-1

【注釋:匯編與二進制之間的關(guān)系是編程達人基礎(chǔ)課程里PE和硬編碼課程】

【簡單介紹16位、32位、64位匯編】

匯編分為16位、32位和64位。

1、16位、32位、64位是指X86處理器?!颈菊鹿?jié)泛指處理器】

2、16位處理器內(nèi)部,能夠一次性處理、傳輸、暫時存放的數(shù)據(jù)的最大長度是16位;

32位處理器內(nèi)部,能夠一次性處理、傳輸、暫時存放的數(shù)據(jù)的最大長度是32位;

64位處理器內(nèi)部,能夠一次性處理、傳輸、暫時存放的數(shù)據(jù)的最大長度是64位。

3、16位匯編一般是指DOS匯編(實模式匯編);

32位和64位匯編一般是指WINDOWS匯編(保護模式匯編);

4、16位處理器內(nèi),有8個通用寄存器AX、BX 、CX、 DX、 SI、 DI、 BP、 SP,其中前四個可以拆分成獨立的8位寄存器,即AH、AL、BH、BL、CH、CL、DH、DL。

32位處理器在16位處理器基礎(chǔ)上,擴展了8個通用寄存器的長度,即EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP。

64位處理器在32位處理器基礎(chǔ)上,擴展了通用寄存器的長度,即RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP。

【注釋:詳細了解16位、32位、64位的不同可以參考Intel白皮書】

【為什么學習32位匯編】

目前【X86】主流處理器架構(gòu)是64位,現(xiàn)在很少有32位的處理器,16位的處理器我們平時接觸的不多。16位匯編也就是DOS匯編,目前很少出現(xiàn),現(xiàn)在主流是WINDOWS匯編,所以本章節(jié)就不概述16位匯編,跟隨主流講解32位下WINDOWS匯編,為什么我們學習的是32位匯編,而不是64位匯編呢?32位匯編和64位匯編兩者沒有本質(zhì)的區(qū)別都是WINDOWS匯編,64位匯編只是在32位匯編的基礎(chǔ)擴展了一些寄存器和指令。雖然操作系統(tǒng)支持64位,但目前很多程序都是32位的,所以我們并不能放棄32位匯編,相反,32位匯編很重要。

【win32匯編】

我們學習的32位匯編并不是win32匯編,win32匯編是宏匯編,里面有大量的偽碼。

【這章節(jié)能讓我們學習到匯編什么深度】

學習完匯編章節(jié),我們能看懂C語言和C++語言及其他高級語言編寫的普通應(yīng)用程序,如果要看操作系統(tǒng)內(nèi)核、學習保護模式,請看編程達人相關(guān)的課程資料。

【配置匯編的學習環(huán)境】

我們需要用到的工具是DTDEBUG,可到編程達人官網(wǎng)下載,下載地址www.bcdaren.com

下載安裝后,我們雙擊打開DTDEBUG程序,點擊菜單鍵:Options-Appearance-Directorics,找到安裝文件夾DTDebug下的udd文件夾,將UDD path改為udd路徑;找到plugin文件夾,將Plugin path路徑設(shè)為plugin文件夾路徑,如2-1-2圖:

圖2-1-2

配置好環(huán)境后,我們用DTDEBUG打開一個程序,打開的方式有兩種,一種是進入點擊菜單鍵:File-- open,選擇相應(yīng)的程序,一種是將程序直接拖進DTDEBUG窗口中,DTDEBUG一共四個界面,左上角是匯編語言,程序執(zhí)行到哪一步都可以在這個窗口看到,右上角是寄存器窗口,左下角內(nèi)存窗口,右下角是堆棧窗口。如圖2-1-3:

圖2-1-3 DTDEBUG介紹

標簽: