首页
社区
课程
招聘
[求助]VS2008编译汇编程序的问题
发表于: 2010-3-4 13:05 5798

[求助]VS2008编译汇编程序的问题

2010-3-4 13:05
5798
在VS2008 pro里已经集成了MASM,经过相关设置后,编译出了程序,但是执行后,说少msvcr90.dll

然后自己写了个C的程序在DEPEND中对比了下两个的导入表。



那个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

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
  • 1.jpg (16.50kb,135次下载)
  • 2.jpg (48.02kb,135次下载)
  • 3.jpg (17.59kb,135次下载)
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
搞定了,我自己来答吧。后来在系统里搜msvcr又看到了msvcr90.dll复制到环境变量里的一个目录,执行报错,用depend查,printf出现了在导入表那。不知道,是不是在msvcr90.dll要调用printf,是不是要做一些相关初始化工作。
正确的是
配置属性-链接器-输入 中,将附加依赖项改为:
C:\masm32\lib\*
我的MASM 9装在C:\masm32\
这样链接时,msvcrt.lib就会使用masm9的那个引入库,会链接到MSVCR.DLL,而不是那个msvcr90.dll。
2010-3-4 15:23
0
雪    币: 386
活跃值: (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
自己动手解决光荣,呵呵
2010-3-5 17:35
0
游客
登录 | 注册 方可回帖
返回
//