汇编语言

118 阅读3分钟

前言

cpu概述

  1. 一个典型的CPU由运算器控制器寄存器等器件组成,这些器件内部总线相连
  2. 区别:
    1. 内部总线实现CPU内部各个器件之间的联系
    2. 外部总线实现CPU和主板上其他器件的联系

寄存器概述

  1. 8086CPU由14个寄存器,他们的名称为
  2. AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

2.1 通用寄存器

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

  2. AX,BX,CX,DX通常用来存放一般性数据被称为通用寄存器

  3. 下面以 AX位例,我们看一下寄存器的逻辑结构

    ​ AX

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []

  4. 一个16位寄存器可以存储一个16位数据。

  5. 一个位寄存器所能存储数据的最大值位 2^16 -1

  6. 数据:18

  7. 二进制表示: 10010

  8. 在寄存器AX中存储

  9. 数据存放效果图

    ​ AX

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [1] [0] [0] [1] [0]

  10. 数据:20000

  11. 二进制表示为: 0100111000100000

    ​ AX

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    [0] [1] [0] [0] [1] [1] [1] [0] [0] [0] [1] [0] [0] [0] [0] [0]

  1. 8086上一代CPU中寄存器都是8位的;

  2. 为了兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。

    1. AX可以分为AH和AL
    2. BX可以分为BH和BL
    3. CX可以分为CH和CL
    4. DX可以分为DH和DL
  3. ​ AX

    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

    [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []

    ----------AH---------- ------------AL-----------

  4. AX的低8位(0位-7位) 构成AL寄存器

  5. AX的高8位 (8位-15) 构成AH寄存器

  6. AH和AL寄存器是可以独立使用的8位寄存器

  7. 一个8位寄存器能存储的数据最大值是 2^8 - 1

2.2 字在寄存器中的存储

一个存在一个16位寄存器中,这个字高位字节自然就存在和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器

  1. 由于一个内存单元可以存放8位数据,CPU中能寄存器又可存放n个8位数据。也就是说,计算机中的数据大多时由1~N个8位数据构成的
  2. 用16位进制来表示数据可以直观的看出直观数据由那些8位数据构成的,每两位对应一个8进制

2.3 几条汇编指令

​ 看书,这个简单

2.4 物理地址

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

2.5 16位结构的CPU

概况的讲,16位结构描述了一个CPU具有以下几个方面特征

  1. 运算器一次最多可以处理16位数据。
  2. 寄存器的最大宽度位16位
  3. 寄存器和运算器之间通路时16位

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

2.7 段地址 x 16 + 偏移地址

2.8 段的概念

2.9 段寄存器

2.10 cs和ip

2.11 代码段