• <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>

            eryar

            PipeCAD - Plant Piping Design Software.
            RvmTranslator - Translate AVEVA RVM to OBJ, glTF, etc.
            posts - 603, comments - 590, trackbacks - 0, articles - 0

            Windows7 Debug Test

            Posted on 2016-04-09 17:44 eryar 閱讀(1614) 評論(0)  編輯 收藏 引用 所屬分類: 6.Others

            Windows7 Debug Test

            eryar@163.com

            1.Introduction

            在郁大師的影響下,很早之前買了本王爽老師的《匯編語言》,可惜一直閑置,今天終于得空,可以學習起來了。為了使學習效果更好,還是寫點東西記錄下來,一方面鞏固下知識點,一方面起到一個監督作用。

            畢竟不是計算機專業科班出身,這些計算機基礎知識只有靠自學。意識到匯編的重要性是從大師可以反匯編和逆向一些軟件開始的。匯編在Debug的過程中也有重要作用,如在Debug時看到這種界面,總是有想理解其意義的好奇心:

            wps_clip_image-15646

            Figure 1. Disassembly and Registers in Visual Studio

            通過反匯編代碼,對程序的運行情況更加清晰。學習匯編的兩個目的:充分獲得底層編程的體驗,深刻理解機器運行程序的機理。知道了來朧去脈,在應用的過程中才能更加自信。

            本文主要介紹在Windows7中運行debug,并在debug程序中執行匯編代碼,從而方便理論知識的學習。

            2.Run Debug in Windows7 

            Debug是DOS, Windows提供的實模式(8086)程序的調試工具,使用它可以查看CPU各種寄存器、內存情況和在機器碼級跟蹤程序的運行。因為debug程序是16位的,在64位的Windows7中無法運行,所以根據網上的方法,先安裝一個DOS模擬環境,再運行debug。

            分別下載工具DOS BOX和32位機器上的debug,這里給出DOSBOX和MASM,其中Debug包含在MASM中。

            wps_clip_image-27561

            Figure 2. DOSBox for Debug

            安裝好DOSBox后,將MASM放到D盤中,運行如下命令來運行Debug:

            mount c d:\MASM 

            c: 

            debug 

            -

            就可以顯示CPU中的相關信息,如下圖所示:

            wps_clip_image-32082

            Figure 3. Debug in DOSBox

            Debug的命令比較多,下面簡單介紹幾個常用的:

            v R命令:查看、修改CPU寄存器的內容;

            v D命令:查看內存中的內容;

            v A命令:以匯編指令的格式在內存中寫入一條機器指令;

            v T命令:執行一條機器指令;

            2.1 R命令

            CPU的寄存器有AX,BX,CX,DX,CS,IP等,通過R命令,可以查看這些寄存器中的信息。若要修改一個寄存器的值,比如AX中的值,可用R命令后加寄存器名來進行,輸入r ax后回車,在:提示后輸入一個數值即可。

            wps_clip_image-15649

            Figure 4. Modify AX by R command

            可以采用同樣的方式來修改其他寄存器中的內容,如IP,CS等。

            2.2 D命令

            Debug的D命令可以查看內存中的內容,直接輸入D命令后,會給出默認內存地址的信息,如下圖所示:

            wps_clip_image-5542

            Figure 5. D command

            也可以用“d 段地址:偏移地址”來列出指定內存單元中的信息,如下圖所示:

            wps_clip_image-17178

            Figure 6. D command 

            2.3 A命令

            Debug的A命令以匯編指令形式在內存中寫入機器指令。這樣就可以方便測試匯編代碼的效果。如下圖所示向1000:0中寫入匯編指令:

            wps_clip_image-20324

            Figure 7. Write Assembly Code by A Command

            如上圖所示,在A命令后跟上地址,然后就可以向相應地址中寫入匯編指令。再用D命令查看內存時,就可以看到相應的機器碼。有了匯編代碼,如何運行呢?需要用到T命令。

            2.4 T命令

            T命令用于執行CS:IP指向的內存單元處的指令。所以要執行A命令寫的匯編指令,需要先通過R命令修改CS和IP寄存器的內容,使他們指向A命令匯編指令所在的內存地址。如上圖所示的A命令是將匯編指令寫到1000:0處,所以修改CS和IP使他們指向這個地址:

            wps_clip_image-32639

            Figure 8. Modify CS & IP by R command

            上圖所示為修改CS和IP后,通過R命令顯示出結果。修改CS和IP后,就可以運行T命令來執行我們寫入的指令了。

            wps_clip_image-30584

            Figure 8. Run T command

            運行一次T命令后,就執行了一條匯編指令,這里執行了mov ax,1,執行后CS:IP指向了下條指令的地址,這樣再執行一次T命令,就執行了mov bx,2,如下圖所示:

            wps_clip_image-8485

            Figure 9. Run T Command

            運行T命令后,執行了mov bx,2,將BX中的內容改為2了。

            3.Conclusion

            學習匯編語言,對理解程序的運行機理有個清晰認識,是想從事計算機科學方面工作的必不可少的基礎。

            通過安裝DOSBox從而在Windows7中運行debug。并通過debug的幾個命令來熟悉簡單的匯編指令。最后通過A,R和T命令,在debug中運行匯編指令。

            4.References

            1. 王爽. 匯編語言. 清華大學出版社. 2013

            Dowload DOSBox & MASM

            综合久久久久久中文字幕亚洲国产国产综合一区首 | 久久久久久极精品久久久| 久久精品国产免费观看三人同眠| 欧美精品国产综合久久| 精品国际久久久久999波多野| 国产91色综合久久免费分享| 亚洲午夜久久影院| 要久久爱在线免费观看| 97久久国产亚洲精品超碰热| 99久久99久久精品国产片果冻| 香蕉久久AⅤ一区二区三区| 久久国产精品无码HDAV | 少妇久久久久久被弄高潮| 久久国产精品无码一区二区三区| 久久精品不卡| 精品久久久久久国产| 国产99久久久国产精品小说| AV色综合久久天堂AV色综合在| 久久国产精品国产自线拍免费| 伊人久久五月天| 四虎国产精品免费久久5151 | 久久狠狠一本精品综合网| 少妇内射兰兰久久| 国产福利电影一区二区三区,免费久久久久久久精 | 99久久国产综合精品五月天喷水| 亚洲欧洲精品成人久久曰影片| 久久精品国产福利国产秒| 天天躁日日躁狠狠久久| 久久精品免费大片国产大片| 久久电影网2021| 国产精品久久午夜夜伦鲁鲁| 伊人久久大香线蕉av不卡| 伊人色综合久久天天人守人婷 | 久久人做人爽一区二区三区| 久久久久久一区国产精品| 久久99久久99小草精品免视看| 久久免费的精品国产V∧| 日韩精品久久久久久免费| 97久久国产综合精品女不卡| 久久精品中文字幕一区| 久久精品一本到99热免费|