汇编入门二(寄存器)

寄存器

  • 对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制

  • 不同的CPU,寄存器的个数、结构是不相同的(8086是16位结构的CPU)

  • 8086有14个16位寄存器:


    汇编入门二(寄存器)_第1张图片
    8086寄存器

通用寄存器

  • AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途)
  • 通常,CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算
  • 假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间
    • CPU首先会将红色内存空间的值放到AX寄存器中:mov ax,红色内存空间
    • 然后让AX寄存器与1相加:add ax,1
    • 最后将值赋值给内存空间:mov 蓝色内存空间,ax


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


      汇编入门二(寄存器)_第3张图片
      image.png

段寄存器

  • CS为代码段寄存器,IP为指令指针寄存器,它们指示了CPU当前要读取指令的地址, 任意时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出执行的指令
  • 指令的执行过程
    1.从CS:IP指向的内存单元读取指令,然后放入指令缓存器
    2.改变IP指针(IP = IP + 所读取指令的长度)
    3.执行缓存器中的指令,然后又跳回步骤1,重复执行这个过程
    具体步骤如下图所示:


    汇编入门二(寄存器)_第4张图片
    image.png

    汇编入门二(寄存器)_第5张图片
    image.png

    汇编入门二(寄存器)_第6张图片
    image.png

    汇编入门二(寄存器)_第7张图片
    image.png

    汇编入门二(寄存器)_第8张图片
    image.png

    汇编入门二(寄存器)_第9张图片
    image.png

    汇编入门二(寄存器)_第10张图片
    image.png

    汇编入门二(寄存器)_第11张图片
    image.png

    汇编入门二(寄存器)_第12张图片
    image.png

    汇编入门二(寄存器)_第13张图片
    image.png

    汇编入门二(寄存器)_第14张图片
    image.png

    汇编入门二(寄存器)_第15张图片
    image.png

    汇编入门二(寄存器)_第16张图片
    image.png

    汇编入门二(寄存器)_第17张图片
    image.png

    汇编入门二(寄存器)_第18张图片
    image.png

    在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息,那么如何区分指令与数据呢?
    CPU将CS:IP指向的内存单元的内容看做指令
    CPU将DS指向的内存单元的内容看做数据

你可能感兴趣的:(汇编入门二(寄存器))