• 首页
  • 教程
  • 资源
  • 脚本
  • 源码库
  • 卖脚本
  • 用户中心
  • 作者成长
加入收藏  返回官网
你的位置:按键精灵资源站
内存初探-底层学习
发布: 2010-03-10 17:23:00 | 作者: | 来源: 按键精灵资源站
1,为什么学习底层
   
    1,什么是内存
        说白了就是主板上那个貌似游戏卡的那跟东西,小时候打小霸王插的卡片类似那样的。
    2,计算机怎么执行程序
        首先,执行一段程序,计算机把可执行的数据存入内存中,然后根据内存中的数据的含义逐条搬到CPU中去,经过CPU的运算然后通过控制器向总线发布命令执行,比如显示图片,或者解析音频。
        计算机内部的数据都是由010101二进制组成,为什么用二进制呢。因为0和1就两种状态,要不是开就是关,要不是通路就是断路,为了使计算机能够识别,所以那些图片那些声音和代码通通都被翻译成0和1的数据。
        由0101组成的语言叫做机器语言,执行速度快,因为不用翻译,而早期为了理解,后来进化成为了汇编语言,不断发展后进化成了高级语言,就是那些C,C++,JAVA,VB等等,这些都是为了人们方便记忆所进行的语言上的人性化。
        但是归根结底,这些东西最后依然要是被转化为0101的机器语言,我们知道CPU执行指令要先从内存中读取数据,所以通过读取内存中的数据,便使读取游戏逻辑执行等成为可能。所以就有了反汇编,加密解密,破解,等底层技术的广泛应用,因为能读了源码,还有什么不可能的呢。
    3,内存的作用
        用于临时性存储数据。游戏中的数据,都得通过内存传递给CPU计算机的大脑,然后CPU去执行分析,CPU执行程序又是什么个流程呢,CPU里面有寄存器,寄存器的作用就是临时存储变量。根据寄存器的位数,变有了多少位多少位的系统
        早期计算机有16位,然后32位,到了现在的64位,位数越多,所能执行的效率越快,因为单次的执行数据多了。
        这里的位是什么意思呢,位,简记为b,也称为比特,每个0或1就是一个位(bit),位是数据存储的最小单位。
        每个位存储0或者1,八位是一个字节,就是1KB,1KB所表示的数是多少呢,就是2的八次方,就是256个数字。
        所以一个32位表示的就是2的32次方,以此类推。只不过表示能计算的范围大小而已。
        
2,学习底层能做什么
   
    计算机表示的所有东西都是0101010,不管事数据还是代码,都是这样一串二进制的数,程序运行后数据载入内存,就是二进制显示,在计算机中没有数据和代码之分。所以通过学习底层的操作,浅方面可以反编译,大方面可以操作驱动进一步了解系统的内核操作和原理,用以达到操作计算机的目的。
   
3,发展方向
   
    学习底层后如果转为SDK编程,那么就可以了解各个语言的基本核心,学一门底层语言便能够明白其他高级语言的含义。
    学习底层变可转入加密解密,对破解开发反汇编都有很大的帮助。
    学习底层可以进行驱动开发和系统内核剖析深究。
    所以,要成为一个真正的程序员,还需从底层学起,才能够编造出程序的世界。