汇编语言----第二章知识梳理与总结

 第二章 寄存器

  上节说到CPU通过系统总线与内部各个器件的联系,这一节开始说说其中一个重要的器件---寄存器,程序员在编程时,可以通过改写寄存器的内容达到对CPU的控制;在8086CPU的

16位寄存器中,AX,BX,CX,DX都是通用寄存器,可以存放一般性的数据。为了兼容上代的CPU这些寄存器可以分成两个八位使用,低八位,和高八位,一AX为例就是分为AL,AH;

  出于兼容性的问题,8086CPU可以处理两种尺寸的数据:

      字节:byte,由8个bit位组成

      子:word,由两个字节组成,这两个字节分别被称为高位字节和低位字节

  

  汇编指令:mov ax,18 将18送入ax寄存器  add ax 8   将8与ax内容相加

  举例:

  

  再寄存器中的改变情况:

  

 

  值得注意的是:在进行相加操作的时候要注意内存的溢出,导致出错

  每一个内存单元都有唯一的地址,成为物理地址

  

  16位结构的CPU{

    1.运算器一次最多可以处理16位的数据;

    2.寄存器的最大宽度为16位;

    3.寄存器和运算器之间的通路为16位

  }  

  8086CPU给出物理地址的方法:用段地址和偏移地址  计算公式:段地址 X 16 + 偏移地址

  如图:

  

  

  本质含义:CPU在访问内存时,用一个基础地址和一个相对于基础地质的偏移地址相加,给出内存单元的物理地址

  

  段的概念:每一个段有一个段地址,但是内存并不是被划分成一段一段的,而是由于CPU的划分

  由于16位地址的寻址能力是64KB,所以一个段的最大长度为64KB

  

  段寄存器:有CS  DS  SS  ES

  CS和IP:代码段寄存器和指令指针寄存器

  CS和IP的值是可以修改的:Ip每次是根据指令的空间大小进行更新,同时可以用jmp命令

原文地址:https://www.cnblogs.com/acmblog/p/9733552.html