VS2008编译汇编程序的问题
生活随笔
收集整理的這篇文章主要介紹了
VS2008编译汇编程序的问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在VS2008 pro里已經集成了MASM,經過相關設置后,編譯出了程序,但是執行后,說少msvcr90.dll
39944
然后自己寫了個C的程序在DEPEND中對比了下兩個的導入表。
39946
39945
那個testprintf是執行正常的。
雖然兩個都有引入msvcr90.dll
問下,這是為什么?
說來生成的OBJ文件應該是正確的,可能在LINK的時候出了問題,請教下怎么設置。
附源碼,請教怎么在VS2008編譯能正確執行。
;程序清單:cpuid.asm(讀取CPU標識)
.586
.model flat,stdcall
Option casemap:none
includelib msvcrt.lib
printf PROTO C :dword,:vararg
.data
szVendorID byte 13 dup (0)
szFormatStr byte 'VendorID = %s; Processor SN = %08X%08X', 0ah
.code
start:
mov eax, 0
cpuid
mov dword ptr szVendorID, ebx
mov dword ptr szVendorID+4, edx
mov dword ptr szVendorID+8, ecx
mov eax, 3
cpuid
invoke printf, offset szFormatStr,?
offset szVendorID, ecx, edx
ret
end start
附:
Visual Studio匯編語言環境配置
http://blog.creke.net/629.html ? 搞定了,我自己來答吧。后來在系統里搜msvcr又看到了msvcr90.dll復制到環境變量里的一個目錄,執行報錯,用depend查,printf出現了在導入表那。不知道,是不是在msvcr90.dll要調用printf,是不是要做一些相關初始化工作。
正確的是
配置屬性-鏈接器-輸入 中,將附加依賴項改為:
C:\masm32\lib\*
我的MASM 9裝在C:\masm32\
這樣鏈接時,msvcrt.lib就會使用masm9的那個引入庫,會鏈接到MSVCR.DLL,而不是那個msvcr90.dll。
39944
然后自己寫了個C的程序在DEPEND中對比了下兩個的導入表。
39946
39945
那個testprintf是執行正常的。
雖然兩個都有引入msvcr90.dll
問下,這是為什么?
說來生成的OBJ文件應該是正確的,可能在LINK的時候出了問題,請教下怎么設置。
附源碼,請教怎么在VS2008編譯能正確執行。
;程序清單:cpuid.asm(讀取CPU標識)
.586
.model flat,stdcall
Option casemap:none
includelib msvcrt.lib
printf PROTO C :dword,:vararg
.data
szVendorID byte 13 dup (0)
szFormatStr byte 'VendorID = %s; Processor SN = %08X%08X', 0ah
.code
start:
mov eax, 0
cpuid
mov dword ptr szVendorID, ebx
mov dword ptr szVendorID+4, edx
mov dword ptr szVendorID+8, ecx
mov eax, 3
cpuid
invoke printf, offset szFormatStr,?
offset szVendorID, ecx, edx
ret
end start
附:
Visual Studio匯編語言環境配置
http://blog.creke.net/629.html ? 搞定了,我自己來答吧。后來在系統里搜msvcr又看到了msvcr90.dll復制到環境變量里的一個目錄,執行報錯,用depend查,printf出現了在導入表那。不知道,是不是在msvcr90.dll要調用printf,是不是要做一些相關初始化工作。
正確的是
配置屬性-鏈接器-輸入 中,將附加依賴項改為:
C:\masm32\lib\*
我的MASM 9裝在C:\masm32\
這樣鏈接時,msvcrt.lib就會使用masm9的那個引入庫,會鏈接到MSVCR.DLL,而不是那個msvcr90.dll。
總結
以上是生活随笔為你收集整理的VS2008编译汇编程序的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从一段代码的汇编看计算机的工作原理
- 下一篇: OllyDbg完全教程