我写了段win masm32 代码,请问怎么调试

Ptrtoptr 2014-07-23 12:25:46
我就写了个简单的 创建文件并且向文件里cpy数据,代码如下:, 代码已能运行,
文件已经能成功创建,可是数据就是复制不进去,
那个创建的文件总是0KB,我也不知道怎么调试,只有瞪着两眼找来找去,找不到原因,请高手看下是什么问题,
另外,不知道直接写出来的masm32有没有好的调试工具
szMyDosHeaderFile db 'D:\masm32\source\Image_dos_header.txt',0

invoke CreateFile, addr szMyDosHeaderFile,\
GENERIC_READ or GENERIC_WRITE ,\
FILE_SHARE_READ or FILE_SHARE_WRITE,\
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE,\
NULL
.if eax!=INVALID_HANDLE_VALUE
mov @hMyFile,eax
invoke GetFileSize,eax,NULL
mov @dwMyFileSize,eax
.if eax
invoke CreateFileMapping,@hMyFile,\ ;内存映射文件
NULL,PAGE_READWRITE,0,0,NULL
.if eax
mov @hMyMapFile,eax
invoke MapViewOfFile,eax,\
FILE_MAP_WRITE,0,0,65536
.if eax
mov @lpMyMem,eax
invoke MemCopy,@lpMyMem,addr szMyDosHeaderFile,sizeof szMyDosHeaderFile
invoke UnmapViewOfFile,@lpMyMem
invoke CloseHandle,@hMyMapFile
invoke CloseHandle,@hMyFile
.endif
.endif
.endif
.endif

;以上是我加的
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2014-07-23
  • 打赏
  • 举报
回复
如果是新建文件的话,新建时的大小就是 0 啊,后面的 CreateFileMapping() 又没指定大小,就是文件的大小了。
向文件写入内容,这个方法没必要吧,有些复杂了;CreateFile() 后 WriteFile() 反而简单。
Ptrtoptr 2014-07-23
  • 打赏
  • 举报
回复
引用 1 楼 zara 的回复:
如果是新建文件的话,新建时的大小就是 0 啊,后面的 CreateFileMapping() 又没指定大小,就是文件的大小了。 向文件写入内容,这个方法没必要吧,有些复杂了;CreateFile() 后 WriteFile() 反而简单。
说的是,我以前有用过,现在直接用CreateFile 和WirteFile

21,459

社区成员

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

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