zoukankan      html  css  js  c++  java
  • 王爽《汇编语言》第三版 第二章 寄存器

    CPU概述

      一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。
      内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其它器件的联系。

      8086CPU有14个寄存器 它们的名称为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

    2.1 通用寄存器

      8086CPU所有的寄存器都是16位的,可以存放两个字节。

      8086上一代CPU中的寄存器都是8位的;
      为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。
      1.AX可以分为AH和AL;
      2.BX可以分为BH和BL;
      3.CX可以分为CH和CL;
      4.DX可以分为DH和DL。


    2.2 字在寄存器中的存储


    2.3 几条汇编指令


    2.4 物理地址 

      CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,这个唯一的地址称为物理地址。


    2.5 16位结构的CPU

      概括的讲,16位结构描述了一个CPU具有以下几个方面特征:
      1、运算器一次最多可以处理16位的数据。
      2、寄存器的最大宽度为16位。
      3、寄存器和运算器之间的通路是16位的。


    2.6 8086CPU给出物理地址的方法

      8086有20位地址总线,可传送20位地址,寻址能力为1M。

      8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。

      

     

    2.7 “段地址×16+偏移地址=物理地址”的本质含义

     

    2.8 段的概念

      内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。

      段地址×16 必然是 16的倍数,所以一个段的起始地址也一定是16的倍数。
      偏移地址为16位,16 位地址的寻址能力为 64K,所以一个段的长度最大为64K。


    2.9 段寄存器

      段寄存器就是提供段地址的。
      8086CPU有4个段寄存器:CS、DS、SS、ES


    2.10 CS和IP

      CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。
      1.CS为代码段寄存器;
      2.IP为指令指针寄存器。

      (1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
      (2)IP = IP + 所读取指令的长度,从而指向下一条指令;
      (3)执行指令。 转到步骤 (1),重复这个过程。

      在8086CPU 加电启动或复位后( 即 CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H。

      不能够通过mov指令改变CS、IP的值,只能够通过专门的指令jmp修改,jmp 寄存器表示只修改IP的值。

    2.12 代码段

      CPU 只认被 CS:IP 指向的内存单元中的内容为指令,所以要将CS:IP指向所定义的代码段中的第一条指令的首地址。

    Debug命令:

      R命令查看、改变CPU寄存器的内容;
      D命令查看内存中的内容;
      E命令改写内存中的内容;
      U命令将内存中的机器指令翻译成汇编指令;
      T命令执行一条机器指令;
      A命令以汇编指令的格式在内存中写入一条机器指令。

     

    参考资料:《小甲鱼汇编零基础入门》

         《汇编语言》第三版

  • 相关阅读:
    洛谷P3128 [USACO15DEC]Max Flow P 题解 树上差分(点差分)
    数列分块解决区间更新+区间最值问题
    ThinkPad P1 Gen3 4K 显示器出现间歇闪黑屏情况解决
    Qt自定义弹出式菜单(Qt自定义弹窗)
    软件产品易用性评价评估标准
    vue用echarts实现中国地图和世界地图
    知了业务逻辑梳理
    string.gfind string.gmatch
    无法定位程序输入点在 XXXX上...
    [Lua]c解析lua 嵌套table
  • 原文地址:https://www.cnblogs.com/mubu/p/6357979.html
Copyright © 2011-2022 走看看