CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

VC++6.0中如何使用CPU寄存器

楼主kacer(望穿秋水)2001-12-12 20:44:24 在 其他开发语言 / 汇编语言 提问

if   (_EAX==0x412321L)   ...  
   
   
  怎样通过编译。本人不想用   _asm。 问题点数:50、回复次数:7Top

1 楼minrel(argc[],argv)回复于 2001-12-12 23:21:13 得分 0

C语言有种寄存器变量  
   
  register   int   i;Top

2 楼Areslee(懒虫易水)回复于 2001-12-13 09:12:24 得分 0

不用_ASM那就没有办法了:(Top

3 楼missdeer(思鹿)回复于 2001-12-13 12:41:10 得分 0

VC不支持寄存器变量,只能用_asm了……Top

4 楼kacer(望穿秋水)回复于 2001-12-13 15:14:45 得分 0

to   Mr.   minrel(minrel):  
   
  我能将   i   强制为某一寄存器吗?比如   _EAX。  
   
  BC   是可以用   _EAX   之类,VC却……大虾救命,  
  否则编译之后的手工优化工作量太大。Top

5 楼masterz(www.fruitfruit.com)回复于 2001-12-13 21:58:40 得分 50

如果只要求编译通过你上面得语句,可以这么做:  
  #define   _EAX   func()  
  __declspec   (   naked   )   int   func()  
  {  
          _asm  
                  {  
                  ret  
                  }  
  }  
  。。。。。。。。。。。。。。。。  
  __asm{  
  mov   eax,0x1234  
  }  
  int   a=_EAX;  
  if(_EAX==0x1234)  
  {  
  AfxMessageBox("eax   is   0x1234");  
  }  
  else  
  {  
  CString   msg;  
  msg.Format("eax   is   %d",a);  
  AfxMessageBox(msg);  
  }  
  Top

6 楼kacer(望穿秋水)回复于 2001-12-20 09:24:30 得分 0

to   masterz():  
   
  我想不出更好的方法。我是想达到寄存器直接编译的目的。  
  你的方法不能满足   _ECX==0x123   的情况。我只能以后手工优化。  
   
  怎么给你分?嘿嘿……我没见给分菜单。  
  Top

7 楼kacer(望穿秋水)回复于 2001-12-20 09:27:56 得分 0

哈哈。我看见了。Top

相关问题

  • 寄存器???缓存???
  • 寄存器应用
  • 寄存器清0
  • 菜鸟问题15: 存储器地址寄存器(MAR)是在主存还是CPU中?
  • 在7个通用寄存器中(除esp),是不是可以由程序随便使用,调用函数(尤其API)后除eax返回值,还有那些寄存器被占用,
  • ****************请教在BCB中的调试器能否象VC++一样查看变量,寄存器!!!请教各位,分全给!!!**************
  • 很陋的问题:VC里对寄存器的输出输入函数有哪些,象InPut,OuPut等,我不能确定函数名具体是不是这样
  • 请问:FPU里的寄存器堆栈和我们的自己定义的stack堆栈在使用上有什么区别吗?
  • 关于32位寄存器eax---
  • 有关寄存器变量的问题

关键词

  • vc
  • asm
  • 寄存器
  • eax
  • msg

得分解答快速导航

  • 帖主:kacer
  • masterz

相关链接

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

广告也精彩

反馈

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