zoukankan      html  css  js  c++  java
  • 汇编语言第二章寄存器知识总结

    第二章 寄存器

    一、CPU

    1、概述

    1)一个典型的CPU由运算器、控制器、寄存器等器件组成。

    2)内部总线实现CPU内部各个器件之间的联系。

       外部总线实现CPU和主板上其它器件的联系。

    2、x位CPU

    1)x位CPU

    通常用字长来描述CPU。例如,字长16,则称16位

    2)CPU字长

    CPU在单位时间内能一次处理的二进制位数

    该指标反映出CPU内部运算处理的速度。

    3)位宽

    CPU通过外部数据总线与内存之间一次能够传送的数据位。

    3、8086CPU

    8086是Intel系列16微处理器,地址总线20

    二、寄存器

    本课程基于8086CPU

    8086有14个16位寄存器:
    通用寄存器:AX BX CX DX 

    基址和变址寄存器:SI DI SP BP 

    段寄存器:IP CS SS DS ES PSW

    1、通用寄存器

        为保证兼容性,8086的四个通用寄存器可分为两个可独立使用的8位寄存器来使用。

    AX为例,可将AHAL作为8位寄存器单独使用。AH和AL存放的无符号数据范围:0~2^8-1

    2、字在寄存器中的存储

    字节 内存划分的基本单位

    两个字节

    双字 四个字节

    四字 八个字节

    字的高8→ 存放于通用寄存器的8位寄存器

    字的低8→ 存放于通用寄存器的8位寄存器

    三、汇编指令

    mov  add  jmp

    四、8086CPU给出物理地址的方法

    1、内存单元的物理地址概述

    CPU访问内存单元时要给出内存单元的地址。

    所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址

    2、物理地址=段地址*16+偏移地址

    8086在内部用两个16位地址 通过计算合成得到一个20位的物理地址

    段地址*16可以看成基础地址

    3、段

    段是8086为解决用16位寄存器表示20位的物理地址而引入的一个逻辑上的概念。

    可以根据需要,将地址连续、起始物理地址为16倍数的一组内存单元(不超过64KB)当作一个使用。

    「段地址 × 16构成段的起始物理地址,故根据需要划分段使用时,段的起始物理地址必须是16的倍数。 

    4、段的划分是灵活的,一个物理地址可以用不同的「段地址: 偏移地址」表示。只要满足段的起始物理地址是16的倍数。

    写法:

    物理地址: 123C8H

    段地址: 偏移地址 1230:00C8  123C:0008

    五、CS和IP

    1、概念

    CS: 代码段段寄存器,用于存放代码段「段地址」

    IP:  指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址

    CS:IP对应的物理地址存放的是CPU将要读取的指令。

    (CS) × 16 + (IP)  = 指令的物理地址

    2、计算机工作过程的三个步骤

    第1步: CPU基于CS:IP,计算出物理地址,然后到相应的内存单元读取指令,送到指令缓冲区。

    第2步: CPU自动修改IP的值,IP = IP + 所读取指令的长度,从而为下一条指令读取做准备;

    第3步: 执行指令。 转第1步,重复此过程。

    3、

    (1) CPU从何处执行指令是由CS和IP中的内容决定的。

    (2) 程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。

    4、修改CS和IP的指令

    CS和IP的修改不能通过mov指令实现,需借助转移指令 (如jmp, call等)。

    jmp  段地址:偏移地址

    eg   jmp 2ae3:3;

    CS<—2ae3h

    IP<—3h

  • 相关阅读:
    滑动加载
    关于git的常用命令
    github相关指令学习
    jquery的contains方法
    vertical-align_CSS参考手册_web前端开发参考手册系列
    关于拜读张鑫旭文章,了解的新属性
    如何从GitHub仓库clone项目
    关于小窗滑动,父级body也跟随滑动的解决方案(2)
    vue父子组件传递参数之props
    JsExcelXml.js的源码
  • 原文地址:https://www.cnblogs.com/Xingxixi/p/9832591.html
Copyright © 2011-2022 走看看