汇编语言--寄存器

一,如何理解通用寄存器?

   1,通用寄存器是用来存放数据的,也称为数据寄存器

   2,一个通用寄存器可以分割为两个8位寄存器(之所以内存最小的单元是8位)

    AX =  AH + AL            AX的高8位构成AH寄存器(H=high),AX的低8位构成AL寄存器(L=low)

    BX =  BH + BL

    CX = CH + CL

    DX = DH + DL

    为什么要分割呢?

      为了兼容:之前的cpu都是是8位寄存器,之后的寄存器为了保证以前编写的程序稍加修改就可以运行在8086cpu中

  3,8086cpu一次性可以处理两种数据

    字节型数据:8位(一个字节)

    字型数据:16位(两个字节)

    注意:一个字节是这个字型数据的高位字节,一个字节是这个字型数据的低位字节

  4,数据与寄存器之间要保证一致性:8位寄存器数据只能转移到8位寄存器,8位数据给8位寄存器,16位数据给16位寄存器

         8位寄存器进行8位运算,保存8位数据(当数据超出范围,进位会保存到标志位寄存器中)

二,内存编号的意义?

  意义:         段地址寄存器:偏移地址寄存器

    段地址寄存器:ds,es,ss,cs

    偏移地址寄存器:sp,bp,si,di,ip,bx

三,8086cpu中什么是物理地址,基础地址?

  段地址 * 10H + 偏移地址 = 物理地址

  段地址 * 10H = 基础地址

  基础地址 + 偏移地址 = 物理地址

  这么划分的理由是什么呢?

    在8086cpu中有20跟地址线,但是寄存器只有16位,为了提高寻址能力,设计者们引用了“地址加法器”的概念。通过对段地址和偏移地址进行运算来充分利用20根地址线

四,cpu如何区分指令和数据?

  1,在内存中指令和数据是没有任何区别的,都是二进制信息

  2,cpu在工作的时候,会将cs段地址寄存器和ip这个偏移地址寄存器组合起来(cs:ip),从它指向的内存单元中读取内容当作指令来执行

    

原文地址:https://www.cnblogs.com/RosemaryJie/p/14017194.html