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

初学win32 asm 的问题

楼主sunjmmeishao1(天山兜兜)2003-11-02 15:35:10 在 其他开发语言 / 汇编语言 提问

.386    
      .model   flat,stdcall    
      option   casemap:none    
      include   windows.inc  
      include   user32.inc  
      include   kernel32.inc  
   
      includelib   user32.lib  
      includelib   kernel32.lib  
     
   
   
    .data  
   
  szCaption db '恭喜',0  
  szText db '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0  
  ;code   segment  
  ; assume   cs:code  
  .code  
  start:  
  push   0  
  push   "ddd"  
  invoke   MessageBox   ,NULL,   'nea',offset   szText,0  
  invoke ExitProcess,NULL  
  ret  
  ;code   ends  
  end   start  
   
  为何invoke   MessageBox   ,NULL,   'test',offset   szText,0  
  出错'test'不能这样用吗?说是访问无权访问的虚拟内存,为何? 问题点数:0、回复次数:3Top

1 楼dunkel(内心和夜 哪个黑)回复于 2003-11-02 16:53:19 得分 0

不能啊,   你看看最后生成的   .exe   就可以发现,   编译程序将   "ddd"   这样的字符串作为立即数   0x646464   使用了(字符   'd'   的   ascii   值为   64h),   和你的原意是大相径庭了.   字符串应该先定义后再使用,   就象   szText   和   szCaption   一样:       (下面的代码就可以显示一个对话框了)  
  start:  
  invoke   MessageBox   ,NULL,   ,offset   szText,   offset   szCaption,   0  
  invoke ExitProcess,NULL  
  ret  
  Top

2 楼sunjmmeishao1(天山兜兜)回复于 2003-11-02 16:57:45 得分 0

单这一句也不对啊  
  invoke   MessageBox   ,NULL,   'nea',offset   szText,0  
  'nea'有问题,我知道改为字符串就可以,可是这样为何不对,是不是'nea'+0就可以了把  
  Top

3 楼jiniang(小羊)回复于 2003-11-02 21:47:19 得分 0

.386    
      .model   flat,stdcall    
      option   casemap:none    
      include   windows.inc  
      include   user32.inc  
      include   kernel32.inc  
   
      includelib   user32.lib  
      includelib   kernel32.lib  
     
   
   
    .data  
   
  szCaption db '恭喜',0  
  szText db '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0  
  ;code   segment  
  ; assume   cs:code  
  .code  
  start:  
  ;push   0  
  ;push   "ddd"  
  ;invoke   MessageBox   ,NULL,   addr   'nea',addr   szText,0  
  invoke   MessageBox,NULL,addr   szText,addr   szText,0  
  ;或者  
  ;invoke   MessageBox,NULL,offset   szText,offset   szText,0  
   
  invoke ExitProcess,NULL  
  ret  
  ;code   ends  
  end   startTop

相关问题

  • ASM 初学者奉上
  • 初学asm的问题---vc里嵌套asm
  • 我是ASM初学者,请大家传授一下经验
  • asm初学编2个关于加减的程序
  • 初学asm,有些简单问题请教大家:
  • 初学ASM,HELLO WORLD 编译遇到问题..
  • 愿与ASM爱好者为友,请多指点(本人熟悉C,初学ASM)
  • vc++初学者,win SDK和win MFC编程的区别?
  • 初学asm,看书中遇到一个问题不懂关于org和$的问题
  • VC初学者

关键词

  • win32
  • code
  • null
  • nea
  • offset sztext
  • invoke messagebox
  • inc
  • include

得分解答快速导航

  • 帖主:sunjmmeishao1

相关链接

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

广告也精彩

反馈

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