国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

程序員為什么要學(xué)習(xí)匯編語(yǔ)言?

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

網(wǎng)友解答:

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

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

圖2-1-1

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

【簡(jiǎn)單介紹16位、32位、64位匯編】

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

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

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

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

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

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

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

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

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

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

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

【為什么學(xué)習(xí)32位匯編】

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

【win32匯編】

我們學(xué)習(xí)的32位匯編并不是win32匯編,win32匯編是宏匯編,里面有大量的偽碼。

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

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

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

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

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

圖2-1-2

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

圖2-1-3 DTDEBUG介紹

標(biāo)簽: