_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

在 C++中使用内联汇编(2)

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:汇编使用 变量
     得C/C++中变量的大�桓霰淞康拇笮∈荓ENGTH和TYPE的乘积TYPE用来取得一个变量的大小如果是一个数组它得到的一个数组中的单个元素的大小。 
 ?8.注释 
 ?可以使用C/C++的注释,但推荐用ASM的注释,即";"号。 
 ?9._EMIT伪指令 
 ?_EMIT伪指令相当于MASM中的DB,但一次只能定义一个字节,比如: 
 ???__asm 
 ???{ 
 ?????JMP?? _CodeOfAsm 
 ?????_EMIT? 0x00??; 定义混合在代码段的数据 
 ?????_EMIT? 0x01 
 ???_CodeOfAsm: 
 ?????; 这里是代码 
 ?????_EMIT? 0x90??; NOP指令 
 ???}
四、在__asm块中使用C/C++语言元素 
 ?C/C++与汇编可以混合使用,在内联汇编可以使用C/C++的变量和很多其它C/C++的元素。在__asm块中可以使用以下C/C++元素: 
 ?1.符号,包括标号、变量和函数名; 
 ?2.常量,包括符号常量和枚举型(enum)成员; 
 ?3.宏定义和预处理指示符; 
 ?4.注释,包括"/**/"和"//"; 
 ?5.类型名,包括所有MASM中合法的类型 
 ?6.typedef名称, 像PTR、TYPE、特定的结构成员或枚举成员这样的通用操作符。 
 ?在__asm块中,可以使用C/C++或ASM的基数计数法(比如: 0x100和100H是相等的)。 
 ?__asm块中不能使用像<<一类的C/C++操作符。C/C++和MASM通用的操作符,比如"*"和"[]"操作符,都被认为是汇编语言的操作符。举个例子: 
 ???int array[[10]]; 
 ???__asm MOV array[[6]], BX ;?Store BX at array+6 (not scaled) 
 ???array[[6]] = 0;???? /* Store 0 at array+12 (scaled) */ 
 ?* 小技巧: 内联汇编中,你可以使用TYPE操作符使作其与C一致。比如,下面两条语句是一样的: 
 ???__asm MOV array[[6 * TYPE int ], 0 ; Store 0 at array + 12 
 ???array[[6]] = 0;????????? /* Store 0 at array + 12 */ 
 ?内联汇编能通过变两名直接引用C/C++的变量。__asm块中可以引用任何符号,包括变量名。 
 ?如果C/C++中的类、结构或者枚举成员具有唯一的名称,如果在"."操作符之前不指定变量或者typedef名称,则__asm块中只能引用成员名称。然而,如果成员不是唯一的,你必须在"."操作符之前加上变量名或typedef名称。例如,下面的两个结构都具有same_name这个成员变量: 
 ???struct first_type 
 ???{ 
 ?????char *weasel; 
 ?????int same_name; 
 ???}; 
 ???struct second_type 
 ???{ 
 ?????int wonton; 
 ?????long same_name; 
 ???}; 
 ?如果按下面声明变量: 
 ???struct first_type hal; 
 ???struct second_type oat; 
 ?那么,所有引用same_name成员的地方都必须使用变量名,因为same_name不是唯一的。另外,上面的weasel变量具有唯一的名称,你可以仅仅使用它的成员名称来引用它: 
 ???__asm 
 ???{ 
 ?????MOV EBX,

    希望这篇在 C++中使用内联汇编(2)的文章能够对您有所帮助,如果您觉得这篇网站维护教程有用的话,别忘了推荐给您的朋友哦!如果您有好的经验方法,不妨拿出来和大家一起分享:假如每个人都拿出一个经验,那么我们都将额外的获取一堆他人的经验。
请记住本站永久域名:(黑客防线网安服务器维护方案维护基地)Www.Rongsen.Com.Cn
    黑客防线网安服务器维护方案本篇连接:http://kj.rongsen.com.cn/show-15153-1.html
网站维护教程更新时间:2012-04-04 22:50:50  【打印此页】  【关闭
0
顶一下
0
踩一下
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer