【汇编基础】CPU寄存器和内存的坦诚相见!!!

       话说有辣么一丢丢玩过电脑的人应该都知道电脑上面打开程序是要运行内存的,每当内存不足的时候电脑就甩一个窗口提示你~~

                                                        【汇编基础】CPU寄存器和内存的坦诚相见!!!_第1张图片

                                                然鹅!!!   

                                         【汇编基础】CPU寄存器和内存的坦诚相见!!!_第2张图片

               你真的清楚平常挂在口边的GB、MB、KB是什么意思吗?

                                                        【汇编基础】CPU寄存器和内存的坦诚相见!!!_第3张图片

        不知道是吧?!(知道的大神们配合下我好吗?!不然我怎么演下去!)

        那就对了,我们来聊聊CPU中的储存器和内存~~ 

        为什么要聊这个?因为我只会这点东西呀

        注意:我将要说的不是下载游戏的那种喔,是↓↓↓↓↓↓↓↓↓↓↓运行内存

                                                     【汇编基础】CPU寄存器和内存的坦诚相见!!!_第4张图片

                                                    然后我们来尬聊

                                                           来尬聊

                                                             尬聊

                                                               聊

       首先我们要知道计算机存放数据的地方除了CPU里面的寄存器就是内存

                  【汇编基础】CPU寄存器和内存的坦诚相见!!!_第5张图片CPU               内存→ 【汇编基础】CPU寄存器和内存的坦诚相见!!!_第6张图片

                                                  ☆★☆★☆为了说明方便我用32、16、8位的寄存器来讲解~~☆★☆★☆

                                                                     通用的32位寄存器中常用的有8个,分别是以下8个

                             【汇编基础】CPU寄存器和内存的坦诚相见!!!_第7张图片

                               ↓↓↓↓↓↓↓↓以下是16位的 ↓↓↓↓↓↓↓↓

                                                              【汇编基础】CPU寄存器和内存的坦诚相见!!!_第8张图片

                               ↓↓↓↓↓↓↓↓以下是8位的 ↓↓↓↓↓↓↓↓

                                       【汇编基础】CPU寄存器和内存的坦诚相见!!!_第9张图片

                               它们三个之间有什么关系呢???

      它们三个并不是三个独立的寄存器,而是互相嵌套的!!!!

                                                   如下

       由于32位的寄存器可以分成两个16位的寄存器16位的寄存器又可以分为两个8位的寄存器,所以可以在的32位寄存器中间分开成两部分,分别是0~15和16~32,16位寄存器中间分开成两部分,分别是0~7和8~15,8位寄存器也是如此照搬分成0~7和8~15.

【汇编基础】CPU寄存器和内存的坦诚相见!!!_第10张图片

       我们把32位寄存器(图下)这一块用来保存数据的地方称之为EAX寄存器,由于它一分为二了,所以把右边表示为低位部分(浅粉色)的区域称之为AX寄存器

    so:一整块我们称之为EAX寄存器,右边低位部分我们称之为AX寄存器 

                     【汇编基础】CPU寄存器和内存的坦诚相见!!!_第11张图片  

       而16位寄存器一分为二之后,把它的左边部分即代表高位,右边部分即代表低位,所以阔以表示成图下这个样子↓↓↓↓↓↓↓

                         【汇编基础】CPU寄存器和内存的坦诚相见!!!_第12张图片

 ↓↓所以呀,不难看出,其实三个寄存器的关系就是像下面酱子的↓↓

【汇编基础】CPU寄存器和内存的坦诚相见!!!_第13张图片

                                         其他的就以此类啦~~

                                                   不懂??

                                                                                         【汇编基础】CPU寄存器和内存的坦诚相见!!!_第14张图片

                                              OllyDbg启动!!

【汇编基础】CPU寄存器和内存的坦诚相见!!!_第15张图片

                   看着这个扎堆扎堆的数据我的脑壳就duangduang疼

我们密切关注右边那个框,可以看到最上面就是我们上面说过的8个寄存 器

                                                                【汇编基础】CPU寄存器和内存的坦诚相见!!!_第16张图片

                      然后我现在用一个例子来让你印象更加深刻

我们拿EAX寄存器来进行试验,我们看到现在寄存器里保存了一个数据7687342B

                                                                                                        

然后我们输入以下代码

  

 

             |    这段代码具体是这样的    |

1.把0x00000000这个数据保存到EAX寄存器里面

2.把0xAAAA这个数据保存到AX寄存器里面

3.把0xBB这个数据保存到AH寄存器里面

4.把0xCC这个数据保存到AL寄存器里面

 

————————以下是代码执行结果——————————

                                            Step1:

                                            Step2:

                                            Step3:

                                            Step4:

———————————————————————————————

                              em......不懂的话就看多几次吧>^<

                                     |    下面我说下内存    |

       其实只要理解了寄存器,内存是很容易理解的,只是内存的容量比寄存器大很多多多多多多多多,所以不能给每块位置上一个专属于自己的名字,所以便用了编号来代替名字,而每个编号就是代表这块位置的地址

       比如有一块32位的内存,那么它的编号可能就是这样的

                       【汇编基础】CPU寄存器和内存的坦诚相见!!!_第17张图片

       而每个编号里面可以存1byte(字节)=8bit(位)的数据,所以一块32位的内存最大可以存储     

                                                   【汇编基础】CPU寄存器和内存的坦诚相见!!!_第18张图片

                          4294967296byte这么多的数据↑    ↑    ↑    

————————————————————————————

我们知道                1KB=1024byte

                               1MB=1024KB

                               1GB=1024MB

————————————————————————————

所以如果我们要转换成GB的话就要÷1024÷1024÷1024,所得到的结果为

                                               【汇编基础】CPU寄存器和内存的坦诚相见!!!_第19张图片

                                                4GB!!!

所以一个计算机是32位的话,它最大只能识别到4GB大的内存!!!

Tip:32位指的是计算机的寻址编号宽度为32位

 

 

对此,你还有任何疑问吗?有的话......请百度~~~~~

                                         【汇编基础】CPU寄存器和内存的坦诚相见!!!_第20张图片

你可能感兴趣的:(进制,思维转变,汇编,编程语言,汇编,计算机基础,编程语言,思维)