您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 4浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

VS2008编译汇编程序的问题

phymat.nico 发布时间:2017-12-25 23:41:34 ,浏览量:4

在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。
关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0875s