大家好,今天小编关注到一个比较有意思的话题,就是关于c 获取cpu 内存的问题,于是小编就整理了1个相关介绍c 获取cpu 内存的解答,让我们一起看看吧。
汇编语言如何发展到C语言的?
我给你说说二者的区别,再去看看演变历史!
一、汇编语言是什么?
二、来历
三、寄存器
学习汇编语言,首先必须了解两个知识点:寄存器和内存模型。
先来看寄存器。CPU 本身只负责运算,不负责储存数据。数据一般都储存在内存之中,CPU 要用的时候就去内存读写数据。但是,CPU的运算速度远高于内存的读写速度,为了避免被拖慢,CPU 都自带一级缓存和二级缓存。基本上,CPU 缓存可以看作是读写速度较快的内存。但是,CPU 缓存还是不够快,另外数据在缓存里面的地址是不固定的,CPU 每次读写都要寻址也会拖慢速度。因此,除了缓存之外,CPU还自带了寄存器(register),用来储存最常用的数据。也就是说,那些最频繁读写的数据(比如循环变量),都会放在寄存器里面,CPU优先读写寄存器,再由寄存器跟内存交换数据。 寄存器不依靠地址区分数据,而依靠名称。每一个寄存器都有自己的名称,我们告诉 CPU去具体的哪一个寄存器拿数据,这样的速度是最快的。有人比喻寄存器是 CPU 的零级缓存。 四、寄存器的种类 早期的 x86 CPU只有8个寄存器,而且每个都有不同的用途。现在的寄存器已经有100多个了,都变成通用寄存器,不特别指定用途了,但是早期寄存器的名字都被保存了下来。
● EAX● EBX● ECX● EDX● EDI● ESI● EBP● ESP
上面这8个寄存器之中,前面七个都是通用的。ESP 寄存器有特定用途,保存当前 Stack 的地址(详见下一节)。 我们常常看到 32位CPU、64位 CPU 这样的名称,其实指的就是寄存器的大小。32 位 CPU 的寄存器大小就是4个字节。
到此,以上就是小编对于c 获取cpu 内存的问题就介绍到这了,希望介绍关于c 获取cpu 内存的1点解答对大家有用。