汇编学习(1)——基础知识

  

  汇编学习(1)——基础知识

———谨以此系列文章记录我的汇编学习。

 关于汇编

  说起汇编语言,那自然不得不想到机器语言,在汇编语言尚未诞生之际,程序猿们只能非常苦逼的敲着0和1,还要记住一大堆复杂难记的二进制指令,那生活可不谓不苦。直到有一天,程序猿们终于受不了这些繁杂的二进制了,于是他们灵光一现,为啥不用我们非常容易理解的伪代码来表示这些二进制数字呢,想到这里那是说干就干啊,于是一伙人凑在一起制定了一个标准,用了一些相对统一的汇编指令来代表机器指令,又编写了一个翻译程序来把汇编指令翻译成机器指令。这样一来,那就皆大欢喜了,机器能看懂这些指令,我们也能看懂了,汇编语言就此诞生了。所以纵观历史,不得不说,想偷懒是人类进步的阶梯。

关于计算机

  对于计算机而言,CPU是其运转的核心,CPU的主要功能便是运算,而想要CPU工作起来,就必须要向他发送指令和数据,指令和数据都存储在内存中。我们平常所用的程序和数据都存储在磁盘中,想要使用这些程序,就必要将其读入内存中然后经过CPU的运算,然后才能正常的使用,所以这三样也是缺一不可的。除了这些之外,还会有外围芯片组、扩展插槽等,扩展插槽上一般插有内存条和各类接口卡,像是显示器、音箱、打印机等都是通过接口卡经过总线(下面会说)CPU相连,直接受CPU指挥。

关于存储器芯片

  在电脑中一般装有多个存储器芯片,这些存储器芯片从物理连接上来看是独立的,从读写属性上来看主要分为两类:随机存储器(RAM)和只读存储器(ROM)。——内存,不要和磁盘混淆

  随机存储器(RAM)可读可写,但必须带电存储,关机后存储内容丢失。

  只读存储器(ROM)只能读取,关机后存储内容不丢失。

 

关于存储单元

  存储器被划分为若干个存储单元,一存储单元为1Byte,1Byte为8bit,1比特(bit)也就是一个二进制位,所以1Byte可以表示0~127的数字。

  内存的容量关系如下:

  1KB=1024B             1MB=1024KB

  1GB=1024MB          1TB=1024GB

  虽然下面还有,不过一般用不到,也就不再列举了。

关于CPU对存储器的读写

  存储器中存储单元被从零开始顺序编号,编号采用16进制。

  CPU先要从内存中读取数据,必须要先指定存储单元的地址,然后在内存找到这个地址,然后进行读或写操作。

  

  ————先入先出队列(FIFO

  ————内存管理单元(MMU)

  其中:

  地址FIFO:CPU通过地址FIFO来指定存储器中的地址。地址总线的个数决定了CPU的寻址范围,假如地址总线的个数为10(即宽度为10),那么10根导线最多可以传送10个二进制数(通过高低电平表示),那么最多可以寻找2的10次方个内存单元。

  数据FIFO:CPU与其他器件之间的数据传送通过数据总线来进行。那么8根数据总线一次可传送8个二进制数(1Byte),16根一次2Byte。

  

           传送89D8的情况

  控制FIFO:CPU对于外界的控制通过控制总线来进行。

关于内存地址空间

  在CPU操控存储器的时候,把他们都当做内存来看待,把他们总的当作一个由若干存储单元组成的逻辑存储器,即内存地址空间。其中每个存储器在这个逻辑存储器中占有一段地址空间,当CPU在这段地址空间中读写数据时就相当于在相应的存储器中读写数据。

  

  从地址0~9FFFF的内存单元中读取数据相当于读取主随机存储器中的数据;向地址A0000~BFFFF的内存单元中读取数据相当于读取显卡中的数据;当向地址C0000~FFFFF的内存单元中写入数据时操作无效,因为只读存储器无法改动其中的内容。

 

posted @ 2018-09-26 17:30  饿江之鱼  阅读(218)  评论(0)    收藏  举报