Visual Studio汇编语言LNK1104错误:无法打开指定exe文件求助
排查Visual Studio汇编项目LNK1104错误及代码逻辑验证
一、LNK1104错误(无法打开exe文件)的排查方向
LNK1104本质是链接器无法生成或访问目标exe文件,和jz指令本身无关——你提到其他含jz的代码能正常运行,说明指令用法没问题,重点查以下几点:
- 进程占用问题:打开任务管理器,检查是否有残留的
CA4.exe进程在后台运行,结束后重新编译。 - 输出目录权限:右键
Debug文件夹,检查当前用户是否有写入权限,若权限不足,修改为允许完全控制。 - 项目配置问题:
- 右键项目→属性→链接器→常规,确认「输出文件」路径为
$(OutDir)$(TargetName).exe,且路径无重复斜杠(你的路径里出现了\\,建议改为单斜杠)。 - 验证Irvine库路径:确认
includelib C:\Users\jerry\Source\Irvine\irvine32.lib中的路径完全正确,irvine32.lib文件确实存在于该目录,且和irvine32.inc版本匹配。
- 右键项目→属性→链接器→常规,确认「输出文件」路径为
- 缓存清理:执行菜单「生成→清理解决方案」,手动删除
Debug文件夹后重新生成项目。
二、代码逻辑验证(符合作业要求)
你的代码逻辑完全正确:
- 作业要求检测bl寄存器的第4、5、6位(从0开始计数)是否为1,你使用的掩码
01110000b(十六进制0x70)精准覆盖这三个位,test指令的用法符合要求。 - 初始化
bl = 01101010b(十六进制0x6A),和掩码执行test后结果不为0,jz None不会触发跳转,最终会输出prompt1的「Set」,完全符合预期。
只要解决链接阶段的问题,代码就能正常运行并输出预期结果。
内容的提问来源于stack exchange,提问作者Flareraptor
相关产品推荐
相关产品推荐

