上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
在C/C 中插入汇编指令
作者:未知 申领版权
2010年12月12日 共有 2258 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:

    在C/C 中插入汇编指令
    用汇编语言写Windows程序无非有两种形式:在高级语言中插入汇编指令和直接使用纯粹的汇编语言来写。前者要求宿主语言支持插入汇编指令,后者是一种比较极端的形式。为了充分表达汇编语言的特点,本书的大多数程序都采用后—种形式。需要内嵌汇编指令的程序大多数都是一些速度要求较高或需要做底层操作的程序,因此—般都使用C/C 语言来写。这是因为C/C 语言本身也可以做一些底层操作并且编译后的程序速度会很快。
    在C/C 中插入汇编指令所需的关键字在不同的操作系统、不同的编译器中可能各不相同。Win32平台上较流行的C/C 编译器Visual C 、Borland C 和C  Builder支持用asm 、  _asm或  __asm这几个关键字中的2、3个来插入汇编指令。这几个关键字的作用是一样的。
    例如:
    asm mov eax,0x12345678
    _asm xor ebx,ebx
    asm mov esi,edi
    也可写成:
    asm{
    mov eax,0x12345678
    xor ebx,ebx
    mov esi,edi
    }
    下面的程序显示一个MessageBox框。
    
    
    C/C 中插入汇编指令示例
    
    #include
    int APIENTRY WinMain(HMODULEhMod,HMODULEprehMod,LPSTRlpCmd,int n) 
    char *lpCaption="标题";
    char *lpText="C/C 中插入汇编指令示例”;
    _asm{
    push MB_OK
    push lpCaption
    push lpText
    push NULL
    call dword ptr MessageBoxA
    }
    return();
    
    程序中,_asm后面的大括号里的汇编指令相当于使用C语言的一条API调用:
    MessageBoxA(NULL,lpText,lpCaption,MB_OK);
    四个Push指令把MessageBoxA所需的参数按从右到左的顺序压入栈中。MessageBoxA在返回时自动调整堆栈,丢弃这些入栈的参数。

    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

干货分享|10本最受国外孩子喜爱的英文词典——上
从孩子的表现看父母的缺点!请家长对号入座,看看你是哪一类?
20条制作PPT的视觉原则
培训简史:培训者必知的历史轨迹
广田丰管理培训生人才培养调查报告
第4讲 作为上司的职业经理
第3讲 作为同事的职业经理
第2讲 作为下属的职业经理
第1讲 培养经理人的管理素养
酒店前台新员工上岗培训计划

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》