网站大量收购独家精品文档,联系QQ:2885784924
  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言秘密

C语言的秘密 摘要 通过编写c++程序,反汇编得到对应的ASM程序,比较c++中的基本数据类型、指针变量、结构体联合、类和继承、常量变量表达式、算术逻辑运算、宏与子程序、全局变量、局部变量、参数传递 、返回值等与ASM中的有什么区别。深入的分析汇编语言在硬件中的编程,来实现高级语言c++中的各种功能。当然现在所学习的知识有限,只能实现简单的一些编程,理解最基本的硬件编程,例如计算机的数据表示、数据运算、计算机组成与工作过程的途径。本文中将通过对编写的c++程序与反汇编的程序,逐语句的分析,研究每条指令的作用及内部硬件的实现;其中会有程序的截图,程序内容的注释以及个人对于程序实现的理解,然后是对于深入了解硬件所参考的文献引用。最后,通过总结对c++与ASM的更深层的了解认识,完成对于C++和汇编的比较学习。 关键字:c++ ASM 子程序 堆栈 目录: :绪论 通过汇编的世界发现c语言的秘密 :对c中基本类型与ASM的语言要素的比较 :c中的结构体、联合、宏在汇编中的实现 :常量变量表达式,逻辑运算底层实现 :子程序的使用——c和ASM的异同 :全局变量、局部变量(静态变量等)的汇编实现 第七章:参数的传值以及地址,返回值——ASM 一、绪论 通过汇编的世界来发现c语言的秘密 通过对汇编语言一学期的学习,从一开始对汇编语言是什么都不知道,到目前已经了解到汇编的基本知识,中间的一些过程也是值得回味的。Intel汇编语言这门课让自己收获很多,作为计算机系的一名学生,汇编语言程序设计是学习计算机课程的基础,通过该课程的学习,我们能基本理解计算机底层的基础硬件、软件及其工作原理(汇编级机器组织);掌握汇编语言的程序设计方法、硬件系统的直接控制方法、目标代码的分析破解方法以及程序优化的方法与技巧;初步实现软硬件知识融会贯通。同时培养其对软硬件底层的认知能力、程序设计与实现能力、系统分析开发与应用能力、独立思考与创新能力,也为计算机组成原理、接口技术、编译原理、计算机体系结构等后续课程的学习奠定坚实的基础。本文通过对c语言的一些基本语言要素和ASM的比较,深入理解汇编的硬件编程实现高级语言c的各种基本功能,学习程序在底层实现的过程,对计算机中的硬件能够很加的了解。 二、对c中基本类型与ASM的语言要素的比较 c语言中的int、char、float等都是基本数据类型,不可以分解为其他类型,是根据变量定义的性质划分的;而ASM的数据类型 BYTE 8位无符号整数 SBYTE 8位有符号整数 WORD 16位无符号整数 SWORD 16位有符号整数 DD float (伪指令) DWORD 32位无符号整数 DQ double SDWORD 32位有符号整数 DT long double FWORD 48位整数 QWORD 64位整数 int a0=1; unsigned int a1=2; int a2 = 3; char b=b; float c=1.0; char b1[4]=abc; 55: int a0=1; 003BA1F0 mov dword ptr [a0],1 //把1赋值给变量a0,a0在ASM中表示地址,用dword ptr 取出对应的数,a0为int 型,在ASM中就为dword 56: unsigned int a1=2; 003BA1F7 mov dword ptr [a1],2 //同上,这里的无符号整型在ASM中也是由dword类型 57: int a2 = 3; 003BA1FE mov dword ptr [a2],3 58: char b=b; 003BA205 mov byte ptr [b],62h //char 类型在ASM中为byte 59: float c=1.0; 003BA209 movss xmm0,dword ptr ds:[3BEBB0h] //浮点数在ASM中也是DWORD类型,浮点003BA211 movss dword ptr [c],xmm0 数在ASM中操作要比其他的要复杂一些 c语言

文档评论(0)

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

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

1亿VIP精品文档

相关文档