VS2017汇编程序调试出问题。。。。无可用源。。本人大一求指教

UEForce 2018-04-02 11:03:54
rt,
1.首先:我的书是《汇编语言-基于x86处理器(第七版)》,这书上的代码如果直接放到vs上编译会出现警报”LNK4258“,所以我参考了微软文档库里的格式,改了下代码,遂编译成功。

2.代码如下:
.386
.model flat,stdcall
.stack 4096

.data
Xval SDWORD 26

.code
main PROC
mov ax,1000h
inc ax
dec ax
mov eax,Xval
neg eax
main ENDP

end main

描述:
1.向项目里添加.asm文件的步骤完全参照了巨硬文档库的指示。
2.调试器选项里启用了源服务器支持和源链接支持,勾选了Microsoft符号服务器,也取消勾选了”要求源文件与原始文件完全匹配“项。
3.工具集版本v141
...全文
1667 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
那就没办法了,无法复现你说的问题。
UEForce 2018-04-06
  • 打赏
  • 举报
回复
引用 9 楼 早打大打打核战争的回复:
可能是因为你没有把.asm添加到源文件。
这算不算添加了源文件?我一直都是这样
  • 打赏
  • 举报
回复

  • 打赏
  • 举报
回复
那有什么问题呢,不能调试?我测试是可以的。
  • 打赏
  • 举报
回复
可能是因为你没有把.asm添加到源文件。
UEForce 2018-04-05
  • 打赏
  • 举报
回复
引用 6 楼 早打大打打核战争的回复:
那有什么问题呢,不能调试?我测试是可以的。
调试就会显示无可用源,但是我用ollydbg就可以调试。。。。。
  • 打赏
  • 举报
回复
你是要连接汇编模块到C代码?那不应该使用main作为过程名,而且为了能在高级语言中访问汇编符号,后者应该声明为public,稍加修改: .386 .model flat, stdcall .data Xval dd 26 public testproc .code testproc: mov ax,1000h inc ax dec ax mov eax,Xval neg eax ret end 如果要生成64代码,.model那行去掉
UEForce 2018-04-04
  • 打赏
  • 举报
回复
引用 3 楼 早打大打打核战争的回复:
你是要连接汇编模块到C代码?那不应该使用main作为过程名,而且为了能在高级语言中访问汇编符号,后者应该声明为public,稍加修改: .386 .model flat, stdcall .data Xval dd 26 public testproc .code testproc: mov ax,1000h inc ax dec ax mov eax,Xval neg eax ret end 如果要生成64代码,.model那行去掉
我就是想写一个独立的汇编
UEForce 2018-04-04
  • 打赏
  • 举报
回复
引用 3 楼 早打大打打核战争的回复:
你是要连接汇编模块到C代码?那不应该使用main作为过程名,而且为了能在高级语言中访问汇编符号,后者应该声明为public,稍加修改: .386 .model flat, stdcall .data Xval dd 26 public testproc .code testproc: mov ax,1000h inc ax dec ax mov eax,Xval neg eax ret end 如果要生成64代码,.model那行去掉
不是
UEForce 2018-04-03
  • 打赏
  • 举报
回复
引用 1 楼 DelphiGuy 的回复:
应该是没有生成调试信息,汇编命令选项里增加/Zi
似乎不是由于这个原因,我发现汇编选项里包含了/Zi 汇编命令如下: ml.exe /c /nologo /Zi /Fo"Debug\1.obj" /Fl"" /W3 /errorReport:prompt /Ta
  • 打赏
  • 举报
回复
应该是没有生成调试信息,汇编命令选项里增加/Zi

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧