为什么输出的是0呢

shijin_wang 2012-02-11 10:22:28
mov ecx,1100
invoke RtlZeroMemory,addr szBuffer,sizeof szBuffer
invoke wsprintf,addr szBuffer,addr szFormat, ecx
invoke MessageBox,0, addr szBuffer,addr AppName,MB_OK
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2012-02-13
  • 打赏
  • 举报
回复
ecx有变化
s11ss 2012-02-12
  • 打赏
  • 举报
回复
估计3L是对的,要记住对于各种调用约定,如stdcall等,都有:
1. 函数内部自由使用eax,ecx和edx.即调用完此函数后,很可能eax,ecx和edx的值都变了,而其他寄存器保持不变!

2. 返回值保存在eax中!
tanxiqiao 2012-02-11
  • 打赏
  • 举报
回复
在调用RtlZeroMemor的时候,RtlZeroMemor使用了ecx寄存器,致使cex寄存器的值变为了0,

invoke RtlZeroMemory,addr szBuffer,sizeof szBuffer
mov ecx,1100

调换一下位置,就没问题了

21,459

社区成员

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

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