乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何用VC6.0集成開發(fā)環(huán)境來構建MASM32匯編的編程環(huán)境(原創(chuàng)) -

       ShaneWu 2009-02-03
      作者:maxzhou88(周哥)

         開發(fā)高性能的程序少不了用匯編編程,限于C語言中內嵌匯編語言的局限(如在C代碼中混合匯編語言編程時,很難實現跳表),一些代碼必須書寫在獨立的 匯編源文件中。遺憾的是,在調試時,只能看到裸的匯編碼,而不能到懂標號,變量等,現在能這樣C與ASM混合編程就方便多了。

      編程環(huán)境:VC6.0,Masm32v8

      優(yōu)點:
      [1] 使用VC6.0集成開發(fā)環(huán)境可以利用其強大的Debug功能來實現源代碼級調試(Source Code Debug),(看變量、設置斷點、查看MASM32的高級命令展開......)
      [2] 使用VC6.0的資源編輯器,可視化編輯資源。
      [3] 實現C/C++與ASM的混合編程。
      [4] 在窗口下比在CMD下工作符合一般人的習慣,再也不需要寫makefile文件或xxx.bat文件了。

      方法:
      [1] 安裝VC6.0,這個我就說了,大家都會的哦,一般我將它安裝在 C:\Program Files\ Microsoft Visual Studio。
      [2] 安裝MASMv8.exe,一般我將它安裝在 D:\MASM32 下。
      [3] 將Win32ASM(masm32)中的ml.exe和ml.err拷貝到C:\Program Files\ Microsoft Visual Studio\VC98\Bin
      [4] 使用VC6.0新建一個空工程,如:hello(類型為:win32 console、win32 application、DLL等均可)。
      [5] 把匯編和資源文件拷至新建工程目錄下(hello.asm,hello.rc),并把這些文件加入工程中(將*.asm添加到Source Files, 將*.rc添加到Resource Files)。
      [6] 配置IDE(這就配置一次就搞定):在VC的菜單tools/option…/paths(include files)中添加一個路徑d:\MASM32\INCLUDE
      [7] 配置工程(每個工程都要這樣配置):打開工程設置(project settings),點擊*.asm文件選擇(Custom Build),
                                            命令中加上: ml /c /coff /Zi /Fo$(TargetDir)\$(InputName).obj $(InputPath)
                                            輸出中加上: $(TargetDir)\$(InputName).obj
          注意選Settings for: Win32 Debug 和 Win32 release,將上面的兩條都加上,而且每個*.ASM文件(如有多個ASM時)都這樣設置。

      [8] 點擊VC的編譯(build)就可以運行了哦。

          至此就可以使用VC調試器源碼級調試匯編程序了,可以設置斷點,察看變量、內存、寄存器等,masm出現語法錯誤時可以雙擊output window中的錯誤行定位到程序中的指定行。
          為了不在debug和release目錄中產生超大的預編譯頭文件xxxx.pch,在工程設置(project settings)中的C/C++ -> Precompiled Headers的選項上選擇"不使用預編譯頭",其實就現在的電腦而言,不使用預編譯頭也能快速地編譯C代碼的哦.

          資源編譯/編輯器蠻好用的.只是還有個問題我也沒有搞懂:VC6.0的資源編譯/編輯器不支持16進制的資源ID,非要用10進制的,我是用兩種方法解決 的:一是將資源文件*.rc中的ID改成10進制,這樣就可以編輯修改了;二是直接用老羅書中的rc文件導入,但在VC6.0中不要打開編輯它就可以了. 有人能告訴我VC6.0的資源編輯器用16進制ID的方法嘛,可能這很簡單,我沒有去深究罷了.

      有空來踩踩我的空間哦:http://hi.baidu.com/maxzhou88
      該文在我的百度空間:http://hi.baidu.com/maxzhou88/blog/item/7c7b4b09181ce186d1581b8f.html
      Win32 C++/ASM 混合編程的Demo下載: http://maxzhou88./pc

          我在學老羅的MASM32程序時都是象這樣在VC6.0的集成環(huán)境下工作的,他書中的例子我基本都試驗過,比在DOS(CMD窗口)下方便多了,也不要什 么makefile文件,建個proj項目就搞定,最重要的是用VC的資源編輯器來編輯資源比原先手工編輯方便多了,如果有什么問題歡迎大家交流哦!

                                                               周哥(maxzhou88) 寫于 2009-01-21

      為了方便大家配置VC6.0 ,我在這里貼兩張圖:

      這是配置項目中每個ASM文件的Custom Build 注意:Debug 和 Release 版本都要設置)


      這是配置VC6.0的IDE,就設置一遍就搞定了。

      不過這兩張圖是我百度空間的,但百度是不提供圖片外鏈服務的哦!別急,先分別右擊這兩張圖的圖框,在彈出菜單的“屬性”中COPY圖片的URL地址,然后 將地址在IE中打開,這時圖片就下載你機器的IE緩沖區(qū)中,再將這個看不到圖的頁面按F5刷新一下,哈哈!IE就直接從緩沖區(qū)中取圖了,你也就看得見了。 沒有辦法啊,對不能外鏈的圖就只能這樣麻煩得做了哦。

          另外,我在調試MASM32程序時還經常開CMD窗來實時查看變量,這也是種很好的Debug方法,其實在Win32下無所謂 windows窗口程序和console 控制臺程序,也就是說在建立工程時可以選console 控制臺程序類型來寫windows窗口程序,反之亦然。我一般是這樣做的,先將工程以windows窗口程序類型來建立新工程,當要用CMD窗口來調試輸 出變量時,我就將工程的link選項卡中的Project options中的subsystem:windows 換成 subsystem:console就可以了,這時候編譯連接后程序運行就會出CMD窗口,當調試完后再改回subsystem:windows即可。


      CMD控制臺輸出的代碼片段如下:

      .data?
      szBuffer   db   'hello the world' ,0dh, 0ah ;要調試的輸出內容
      hStdOut   dd   ? ;控制臺標準輸出句柄,在CMD中是默認打開的
      dwBytesWrite dd   ?
      ;用下列語句就可以實現CMD的輸出
      invoke WriteConsole, hStdOut, addr szBuffer, sizeof szBuffer, addr dwBytesWrite, NULL

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多