• 汇编语言--寄存器


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

       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),从它指向的内存单元中读取内容当作指令来执行

        

  • 相关阅读:
    【转】Redis主从复制简介
    Redis配置文件详解
    Redis在Windows环境下搭建
    Redis桌面管理工具 RedisDesktopManager
    Redis服务停止报错解决方案[NOAUTH Authentication required]
    Redis启动警告错误解决
    修改tcp内核参数:somaxconn
    CentOS6.8安装Redis3.2.5
    Github之协同开发
    自定义实现栈的功能
  • 原文地址:https://www.cnblogs.com/RosemaryJie/p/14017194.html
Copyright © 2020-2023  润新知