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

关于中断——C与汇编嵌套,请高手指教!

楼主cdmar79(陈)2006-03-04 12:04:40 在 VC/MFC / 硬件/系统 提问

小弟不知道在这里发这个贴子对不对路,先放几天看看!  
   
                    int1:  
                    __asm  
                    {...}  
                    ...  
                    int3:  
                    {...}  
                    ..........  
   
                      __asm  
  {  
  MOV   AH,0x25  
  MOV   AL,0x1  
  PUSH   DS  
  MOV   CX,CS  
  MOV   DS,CX  
  MOV   DX,   OFFSET   int1       ////错误  
  INT   0x21  
  POP   DS  
   
  MOV   AH,0x25  
  MOV   AL,0x3  
  PUSH   DS  
  MOV   CX,CS  
  MOV   DS,CX  
  MOV   DX,   OFFSET   int3     /////错误  
  INT   0x21  
  POP   DS  
  }  
   
  编译时错误提示为:error   C2443   :operand   size   conflict    
  急!!!!!!  
  能不能把两个标号的值先保存到两个变量,再把变量move进去,但是标号的(地址)值怎么取得?  
  或者,谁有其他的办法也行! 问题点数:40、回复次数:10Top

1 楼syy64(太平洋)回复于 2006-03-04 12:47:42 得分 0

汇编,现在懂的人不多。Top

2 楼cdmar79(陈)回复于 2006-03-05 09:35:44 得分 0

那我放到汇编那里问是不是更好点啊!?Top

3 楼cdmar79(陈)回复于 2006-03-05 21:04:49 得分 0

在顶一天,大家帮忙啊!Top

4 楼taianmonkey()回复于 2006-03-07 15:59:44 得分 5

Compiler   Error   C2443operand   size   conflict  
   
  The   instruction   requires   operands   to   be   the   same   size.  
   
  Example  
   
  //   C2443.cpp  
  short   var;  
  int   main()  
  {  
        __asm   xchg   ax,bl                         //   C2443  
        __asm   mov   al,red                         //   C2443  
        __asm   mov   al,BYTE   PTR   var       //   OK  
  }  
  Top

5 楼lisypro()回复于 2006-03-09 10:35:25 得分 0

UPTop

6 楼deutsch(人民)回复于 2006-03-09 11:54:59 得分 0

楼主这样还不够累的,直接用windows的VEH实现不行?Top

7 楼wangk(倒之)回复于 2006-03-09 12:20:16 得分 5

example:  
  __asm  
  {  
  start   :  
  mov   eax,1  
  mov   ebx   ,2  
  mov   ecx   ,offset   start  
  ......  
  }Top

8 楼AthlonxpX86(一坨屎)回复于 2006-03-10 22:23:59 得分 0

我做木马经常用这种方法,不过你的方法是做的应该这样写  
  应该这样写  
  lea   eax,int1  
  move   edx,eaxTop

9 楼AthlonxpX86(一坨屎)回复于 2006-03-10 22:27:45 得分 30

语法错误改了,不过windows程序中是不能够用int21之类的东西的。请你注意,这类DOS或者BIOS中断调用只能在16位模式下使用,NT系统是纯32为系统,所以你不要胡来Top

10 楼cdmar79(陈)回复于 2006-03-12 11:53:25 得分 0

TO   AthlonxpX86(桃源村)    
  果然高,我也刚找到用lea的方法可以解决问题,呵呵!谢谢了!  
  还有,你的int21的建议我是知道的,thx   anyway!  
  能给个联系方式吗?  
   
  To   all:  
  很满意,结贴了!Top

相关问题

  • 还有一个在c中嵌套汇编的问题
  • 请问如何在C中嵌套汇编语言?
  • 如何在c语言中嵌套汇编语言,我用的是turbo c2.0!!在线等候,快快
  • vb可以嵌套汇编吗?
  • VC中嵌套汇编的问题
  • c与汇编
  • c++变汇编?
  • c语言用什么编的,若是汇编,调用里的DOS中断,还是BIOS中断?
  • tc中嵌套汇编程序,如何编译?
  • C++和汇编的问题

关键词

  • asm
  • ds
  • c2443
  • dsmov
  • 错误
  • operands
  • mov
  • al
  • 方法
  • offset

得分解答快速导航

  • 帖主:cdmar79
  • taianmonkey
  • wangk
  • AthlonxpX86

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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