8086汇编(5)寄存器

1、CPU的典型构成

8086汇编(5)寄存器_第1张图片
1.png
  • 对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制
  • 不同的CPU,寄存器的个数、结构是不相同的(8086是16位结构的CPU)
    8086有14个寄存器
    都是16位的寄存器
    可以存放2个字节


    8086汇编(5)寄存器_第2张图片
    2.png

2、通用寄存器

  • AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途)
  • 通常,CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算

假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间
CPU首先会将红色内存空间的值放到AX寄存器中:mov ax,红色内存空间
然后让AX寄存器与1相加:add ax,1
最后将值赋值给内存空间:mov 蓝色内存空间,ax


8086汇编(5)寄存器_第3张图片
2.png
  • AX、BX、CX、DX这4个通用寄存器都是16位的,如下图所示


    8086汇编(5)寄存器_第4张图片
    3.png
  • 上一代8086的寄存器都是8位的,为了保证兼容, AX、BX、CX、DX都可分为2个独立的8位寄存器来使用
    H代表高位寄存器
    L代表低位寄存器


    8086汇编(5)寄存器_第5张图片
    4.png
8086汇编(5)寄存器_第6张图片
5.png

3、字节与字

  • 在汇编的数据存储中,有2个比较常用的单位
    字节:byte,1个字节由8bit组成,可以存储在8位寄存器中
    字:word,1个字由2个字节组成,这2个字节分别称为字的高字节和低字节

  • 比如数据20000(4E20H,0100111000100000B),高字节的值是78,低字节的值是32


    8086汇编(5)寄存器_第7张图片
    6.png
  • 1个字可以存在1个16位寄存器中,这个字的高字节、低字节分别存储在这个寄存器的高8位寄存器、低8位寄存器中

4、段寄存器

  • 8086在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址
  • 是什么部件提供段地址?段地址在8086的段寄存器中存放
  • 8086有4个段寄存器:CS、DS、SS、ES,当CPU需要访问内存时由这4个段寄存器提供内存单元的段地址
    CS (Code Segment):代码段寄存器
    DS (Data Segment):数据段寄存器
    SS (Stack Segment):堆栈段寄存器
    ES (Extra Segment):附加段寄存器
  • 每个段寄存器的具体作用是?


    8086汇编(5)寄存器_第8张图片
    7.png

你可能感兴趣的:(8086汇编(5)寄存器)