CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

win32汇编问题

楼主mblzds(想学但人又懒)2005-06-01 22:06:11 在 其他开发语言 / 汇编语言 提问

请大家看一下下面的代码段(假设   szOk,Num   在数据段也定义)  
  invoke   MessageBox,NULL,addr   szOk,addr   szOk,4  
  mov   Num,eax  
  invoke   MessageBox,NULL,addr   Num,addr   Num,1  
  本来我是想看看第一函数调用的返回值,在win32汇编一切函数的返回值都存在eax中  
  我在用MessageBox显示它。为什么结果是一些字符了!请问我错在什么地方啦!  
  问题点数:50、回复次数:3Top

1 楼zara(Kyrie eleison)回复于 2005-06-01 22:41:04 得分 25

是要将   Num   转换为字符串格式再显示的:    
  .const  
  szFmt_d         db       '%d',   0  
  ...  
  local   cBuf[32]:BYTE  
  invoke   MessageBox,NULL,addr   szOk,addr   szOk,4  
  invoke   wsprintf,   ADDR   cBuf,   ADDR   szFmt_d,   eax  
  invoke   MessageBox,NULL,addr   cBuf,addr   cBuf,1Top

2 楼hitetoshi(绝影)回复于 2005-06-01 22:45:01 得分 25

eax返回是一个DWORD类型,但是你明显希望看到一个ASCII类型的。做法是先把eax的整形转换为字符串,再用MessageBox输出。  
   
  szFormat       db       '%d',0  
  szReturn       db       8   dup(?)  
  ...  
  invoke   MessageBox,NULL,addr   szOk,addr   szOk,4  
  mov   Num,eax  
  invoke   wsprintf,addr   szReturn,addr   szFormat,Num  
  invoke   MessageBox,NULL,addr   szReturn,addr   szReturn,MB_OK  
  Top

3 楼mblzds(想学但人又懒)回复于 2005-06-02 12:21:13 得分 0

原来是这样啦是不是要使用wsprintf转换类型,调试通过啦!谢谢楼上二位的帮助!!!Top

相关问题

  • 汇编?
  • 汇编
  • WIN SDK和MFC插入汇编代码问题
  • c与汇编
  • c++变汇编?
  • 汇编语言?
  • 汇编语言
  • 翻译汇编
  • 汇编语言
  • 汇编杂志

关键词

  • win32
  • db
  • null
  • szok
  • szreturn
  • eaxinvoke
  • addr
  • cbuf
  • messagebox
  • wsprintf

得分解答快速导航

  • 帖主:mblzds
  • zara
  • hitetoshi

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo