笔记——第一章

作者: 退堂鼓国家一级艺术家 | 来源:发表于2017-07-09 14:36 被阅读43次

    @(读书笔记)[汇编语言,计算机]

    基础知识

    为什么要有汇编语言

    CPU——电平脉冲(高低平)——二进制数字——机器指令——机器语言——难以人类大脑的记忆与检查——助记码(汇编指令,在机器指令中有对应)——再加上一些辅助语言(伪指令等,方便编译器处理,没有机器指令对应,CPU也不处理)

    计算机核心部分

    1. CPU
      有计算单元及一系列寄存器(AX, BX, CX, DX, DS, CS, SS, ES, SP, IP)
    2. 存储器
      内存划分为存储单元(以1字节为一单元),每一个单元有一个编号。这就是内存的地址,方便CPU读写信息。
    3. 总线
      总线负责在CPU和其它芯片之间传输信息。为了让CPU知道哪一部分的信息要被看作指令,哪一部分要被看作数据,又把总线逻辑上分为地址总线、数据总线和控制总线。
    • 至于这些总线的传输信息能力,则是看这些总线有多少根,因为每一个导线都有两种状态(高压和低压)对应二进制的0和1。
    1. 存储器芯片
      我们都知道存储器分为RAM(随机存储器)和ROM(只读存储器)。但是,除了我们常规意义上说的内存和装有电脑的BIOS的MBR。其实每一个硬件对应的芯片也有BIOS,有些还有RAM。比如显卡。
      所以我们可以这么认为,对硬件的操作,在底层上来说都是对存储器的读写操作。
    2. 内存
      为了不让CPU有额外的控制变量的花销,整个计算机把所有的内存逻辑上看作是一个整体。也就是说,内存地址空间是统一编号的,每一个地址对应唯一的一个存储单元。

    总之,其实整个底层逻辑很简单,CPU充当大脑管理计算机各个硬件设备(但不是直接管理,而是通过每一个硬件对用的芯片,管理芯片,也就管理了硬件)。方式就是通过地址总线定位要处理的芯片在内存中的位置,然后从数据总线读取要读写的数据,从控制总线来判断是要读还是写,还是别的操作。

    寄存器

    物理地址

    由于8086(本书讲解对象)是16位架构的CPU,也就是说其内部总线是16位,只能传输16位二进制数字。但是我们的内存比较大,要求外部地址总线有20根,也就是说对一个内存地址的描述,需要20位二进制数字。所以我们引进了段地址+偏移地址来解决这个问题。于是20位的内存地址就叫做物理地址。在CPU中会根据段地址和偏移地址计算出物理地址。具体办法就是:段地址*16+偏移地址

    类型

    1. CS+IP是一对,cs是段地址,IP是偏移地址。用来存储代码段,也就是当前的指令。
    2. DS+[……]是一对,DS存储某数据的段地址,其偏移地址就用方括号加上具体的数值给出。比如偏移地址是0,表示为[0]。
    3. SS+SP是一对,表示栈空间的段地址和偏移地址。栈空间的SP是指向栈顶,且其移动是以字为单位,也就是2byte为单位。一次移动两个存储单元。

    相关文章

      网友评论

        本文标题:笔记——第一章

        本文链接:https://www.haomeiwen.com/subject/mqgshxtx.html