zoukankan      html  css  js  c++  java
  • 2.寄存器

    1. 一个典型的CPU使用运算器、控制器、寄存器等组成的。
    2. 8086CPU有14个寄存器,AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW,其中有8个是通用寄存器。
    3. 8086CPU所有寄存器都是16位的,可以存放两个字节。
    4. AX、BX、CX、DX通常用来存放一般性数据被成为通用寄存器。
    5. 8086CPU为了兼容上一代的8位CPU,AX、BX、CX、DX这四个可以分为两个独立的8位寄存器。比如AH(高位)和AL(低位)。
    6. 1字=2字节=16位(1Word=2Byte=16bit)。
    7. CPU访问内存时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在一个空间中都有唯一的地址,我们称为物理地址
    8. 8086是16为结构的CPU,就是说,在8086内部,能过一次性处理、传输、暂时存储的信息的最大长度是16位。
    9. 8086CPU有20位的数据总线,有1MB寻址能力(2的20次方),8086CPU是16位结构,只能送出16位的地址,也就是64K的寻址能力,那怎么内部和外部怎么协同工作呢?
    10. 8086CPU采用一种在内部用两个16位地址合成的方法形成一个20位的物理地址
    11. 地址加法器采用物理地址=段地址x16+偏移地址的方法用段地址和偏移地址合成物理地址。比如段地址1230H,偏移地址00C8,经过地址加法器时,将1230HX16(如同1230X10)变成的12300H(向左偏移了一位,相对二进制,向左偏移了4位),然后12300H+00C8=1230C8。
    12. “物理地址=段地址x16+偏移地址”的本质含义:CPU访问内存时,用一个基础地址(段地址X16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。
    13. 段寄存器就是提供段地址的。8086CPU有4个段寄存器:CS(代码),DS(数据),SS(堆栈),ES(不够的时候放这里)。
    14. CS和IP是8086CPU中两个最关键的寄存器,它们只是了CPU当前要读取指令的物理地址。CS为代码段寄存器,IP为指令指针寄存器(偏移地址)。
    15. 在8086CPU中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存MX16+N单元开始读取一条指令并执行。也可以这样表达:8086机中,任意时刻,CPU将CS:IP指向的内容当作指令来执行
    16. 8086CPU加电启动或复位后CS和IP被设置为CS=FFFFH,IP=0000H,即8086CPU刚开始工作时,CPU从内存FFFF0H单元中读取指令并执行。
    17. CPU将CS:IP指向的内存单元中的内容看作指令,如果说,内存中的一段形象曾被CPU执行过,那么他一定被CS:IP指向过。
    18. 程序员可以通过改变寄存器中的内容实现对CPU的控制。
    19. 8086CPU大部分寄存器的值,都可以用mov指令来改变,mov指令被称作传送指令。
    20. mov指令不能用于设置CS、IP的值,我们可以用最简单的jmp指令,若想同时修改CS、IP的内容,可用“jmp 段地址:偏移地址”指令完成,如jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将从2AE33H读取指令。
    21. “jmp 段地址:偏移地址”指令功能为:用指令中给出的段地址修改CS,偏移地址修改IP。
    22. 若只想修改IP内容,可用“jmp 某一合法寄存器”的指令完成,
      如:jmp ax,指令执行前:ax=1000H,CS=2000H,IP=0003H,
      指令执行后:ax=1000H,CS=2000H,IP=1000H,
      jmp ax
    23. CS存放指令的段地址,IP存放指令的偏移地址
  • 相关阅读:
    简单明了的带你理解springboot原理和三大核心注解
    Spring Boot(一):入门篇
    【Mysql优化】聚簇索引与非聚簇索引概念
    Mysql索引原理与优化
    Mysql全文索引的使用
    索引的优缺点,如何创建索引
    184 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 04 例:字符串与byte(即:字节)数组间的相互转换
    183 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 03 String常用方法(下)
    182 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 02 String常用方法(上)
    181 01 Android 零基础入门 03 Java常用工具类03 Java字符串 02 String类 01 String常用方法简介
  • 原文地址:https://www.cnblogs.com/zxj159/p/2811379.html
Copyright © 2011-2022 走看看