• 汇编第二章_寄存器



    一个典型的CPU由 运算器,控制器,寄存器等器件构成.
    (1) 运算器进行信息处理.
    (2) 寄存器进行信息存储.
    (3) 控制器控制各种器件进行工作.
    (4) 内部总线连接各种器件,在它们之间进行数据的传送.

    寄存器是CPU中程序员可以用指令读写的部件,
    通过改变各种寄存器中的内容可以实现对CPU的控制.

    8086CPU有14个寄存器,且都是16位的:
    AX BX CX DX SI DI SP BP IP CS SS DS ES PSW
    为了与上一代CPU兼容,8086CPU的AX BX CX DX这4个寄存器都可以分成两个独立使用8位寄存器.
    AX : AH AL
    BX : BH BL
    CX : CH CL
    DX : DH DL
    注意 AL 和 AH 都是作为独立的8为寄存器来使用的.

    8086CPU可以一次性处理以下两种尺寸的数据:
    字节 字(word) 1 word = 2 byte(高位字节 低位字节)

    通用寄存器: AX BX CX DX 这4个寄存器通常用来存放一般性的数据.

    十六进制后面一般加H 二进制后边加B

    8086CPU有20位地址总线,但是是16位结构,所以使用两个16位地址合成的方法来形成一个20位的物理地址.
    地址加法器采用: 物理地址 = 段地址 * 16 + 偏移地址
    同时定义: 段地址 = 起始地址(基础地址) / 16
    本质含义是:
       CPU在访问内存时,
      用一个基础地址(段地址 * 16) 和
      一个相对于基础地址的偏移地址相加,
      给出内存单元的物理地址.

    内存并没有分段, 端的划分来自于CPU.
    在编程需要的时候,可以将若干地址连续的内存单元看作一个段,
    用 段地址 * 16 定位段的 起始地址, 用 偏移地址 定位段中 内存单元.
    由于段地址 * 16 是 16的倍数,所以一个段的起始地址一定也是16的倍数.
    偏移地址为16位, 16位地址的寻址能力为64KB, 所以一个段的长度最大为64KB.

    CPU如何区别内存中的数据和指令的: CS:IP寄存器指向的内存单元的内容是指令.

  • 相关阅读:
    JavaScript 中继承的一些示例
    测试ASP_NET 生命周期
    Web 设计师的 50 个超便利工具[下]
    关于ASP.NET 中站点地图sitemap 的使用
    早该知道的 7 个JavaScript 技巧[转]
    C# 浅拷贝与深拷贝区别
    HTML 中表格table 的相关知识
    理解值与引用[学习]
    关于CSS 3 及浏览器兼容性问题
    SQL Server 的存储过程[转]
  • 原文地址:https://www.cnblogs.com/cgjh/p/10351190.html
Copyright © 2020-2023  润新知