网站大量收购独家精品文档,联系QQ:2885784924

C语言的秘密程序.docx

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言与汇编语言要素的比较语言要素的比较数据类型的比较数值数据与非数值数据的比较区别联系类别数值数据信息数据编译器可以把进制转为二进制并转换为相应编码数与信息之间可以进行转换所有的数据最终都表示为0和1运算可以进行运算不能进行运算,只用于输入输出数据有类型,有范围,且存储空间大小不一,有进制,有正负之别,可以运算比较仅有char类型,存储时只占一字节,仅在极少数情况下可以进行比较(如排序)编码编码与类型有关(无符号整数,有符号整数及浮点数的编码各不相同)有ASCII、Unicode等,编码不同表示方式也不同具体数据类型的比较类别C语言汇编语言整数常量短整形short intwordunsigned short intword整形intdwordunsigned intdword长整形long long intdword * 2unsigned long long intdword * 2实数常量单精度floatdword双精度doublemmword字符常量charbyte字符串常量以单、双引号括起来的一串字符保留字类型说明语义定义存储类说明长度运算符其他保留字(ISO最新的C11标准中有C语言保留字38个)指令助记符伪指令属性运算符预定义符号逻辑逻辑与()逻辑或(||)逻辑与(and)逻辑或(or)逻辑异或(xor)逻辑非(not)test指令指针数据类型 *指针变量名;例:int *p1;char *p2;指针就是使用mov方法的间接寻址数组类型数组名[元素个数];只能用来储一组数据的构造数据类型定义一个具有一系列相同元素的数组可以用dup关键字结构体把不同类型数据组合成一个整体的自定义数据类型例:struct 结构体名{类型标识符成员名;……类型标识符成员名;};为了把一组不同类型的变量说明组合在一起,汇编语言提供了另一种复合数据类型说明符——结构类型说明符struc用struc和ends可以把一系列数据定义语句括起来作为一种新的、用户定义的结构类型结构名 struc[Alignment][NONUNIQUE];数据定义语句序列 结构名ends;联合体表示几个变量公用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量例:union 联合名{数据类型成员名;……数据类型成员名;}联合变量名;定义不明其他TBYTEFWORD常量和变量类别C语言汇编语言常量const 数据类型常量名 = 常量值;(.data之前)常量名=常量值常量表达式全局变量(在所有方法之前)数据类型变量名;(.data内)变量名数据类型初始值(未知可为?)局部变量(在方法中)数据类型变量名;(在方法中)[EBP–n]静态变量static 数据类型变量名;变量表达式数据类型变量名 = 表达式; 必须先将变量值存入寄存器,然后对寄存器中的值进行算数操作,再将寄存器中的值重新赋值给变量条件表达式表达式逻辑运算符表达式必须先对两个变量进行cmp操作,再根据比较结果进行跳转赋值赋初值C语言:在定义变量的同时进行赋值操作,就是初始化,如定义一个整形变量a,初始化赋值为5int a=5;汇编语言:?表示不赋初值的具体形式与有无符号,数据类型有关赋值语句C语言C语言中没有提供专门的赋值语句。赋值操作是由赋值表达式再加上分号构成的表达式语句来实现的。其一般形式为:变量=表达式; 赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。全局变量局部变量注意事项在函数外定义,作用域是整个源程序在函数内部定义,它的作用域仅限于函数内, 离开该函数后再使用就是错误的1) main函数中定义的变量也是局部变量,只能在 main 函数中使用;同时,main 函数中也不能使用其它函数中定义的变量。main函数也是一个函数,与其它函数地位平等。2) 形参变量、在函数体内定义的变量都是局部变量。3) 可以在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。4) 在语句块中也可定义变量,它的作用域只限于当前语句块。在全局可见仅在该函数内可见一般在程序顶部定义存放在内存的全局数据区存放于栈区,函数退出时,局部变量随之消失如在定义时未初始化,则其值为0如果局部变量不被显式初始化,其内容则不可预料如果一个函数修改了n,则所有其他的函数都会看到修改后的变量汇编语言全局变量赋初值(在数据段由编译器转成相应内码存储在执行文件)局部变量赋初值:在堆栈段动态生成,由MOV等传送指令来赋值,占用程序执行时间赋初值的DUP法:包括直接复制及循环嵌套赋值算术运算及逻辑运算C语言运算符含义类型+加双目算术运算-减*乘/除%整数求余++增1单目运算--减1逻辑与逻辑运算||逻辑或整数运算:整数运算时,将所有数据都转换为整数类型进行运算对于整数除法运

文档评论(0)

502992 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档