• 第二章 寄存器 总结


    一 什么是寄存器

    寄存器是cpu的主要部件,程序员通过改变各种寄存器中的内容来实现对cpu的控制。

    二 通用寄存器

    1,8086cpu中,寄存器AX,BX,CX,DX通常存放一般性数据,称通用寄存器,每个寄存器均为16位,可以存放两个字节。

    2,寄存器拆分,AX可分为AH,AL,BX可分为BH,BL,CX可分为CH,CL,DX可分为DH,DL;

    三 字在寄存器中的存储

    字节(Byte)和字(Word).一个字节由8给bit组成,一个字由两个字节组成,可存于一个16位寄存器中,字的高八位存于通用寄存器的高八位寄存器,字的低八位可存于通用寄存器的低八位寄存器。

    四 几条汇编指令

    举例

           mov ax,18 ;将18送入寄存器AX    AX=18

      mov ah,78 ;将78送入寄存器AH    AH=78

      add ax,8  ;将寄存器AX中的数值加上8   AX=AX+8

      mov ax,bx ;将寄存器BX中的数据送入寄存器AX  AX=BX

      add ax,bx  ;将AX和BX中的数值相加,结果存在AX中  AX=AX+BX

    写一条汇编指令或一个寄存器的名称时不区分大小写 如bx和BX含义相同。

    五 物理地址

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

    由cpu中的地址加法器实现:

    地址加法器:物理地址=段地址*16+偏移地址

    六 CS和IP

    1 CS和IP是8086CPU中最为关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP为指令指针寄存器。

    2 CS:IP对应的物理地址存放的是cpu将要读取的指令,(CS)*16+IP=指令的物理地址。

    3 在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS和IP中的内容决定的,程序员可以通过改变CS,IP中的内容来控制CPU执行目标指令。

    但是,mov指令不能用于改变CS IP的值 我们可以使用jmp指令来修改CS IP的指令

    若同时修改 CS IP的内容 可以用   jmp 段地址:偏移地址 的指令完成。

    jmp 2AE3:3 执行后 CS=2AE3,IP=0003H CPU将从2AE33H处读取指令。

    如果只是想改变IP中的内容,可以用形如:“jmp 某一合法寄存器”的指令来完成。

    jmp ax,相当于mov IP ax。

    4.所以,要让CPU执行我们放在代码段中的指令,必须要将CS和IP指向第一条指令的首地址。

  • 相关阅读:
    iOS的图片:解码(CPU)与内存(缓存)
    iOS离屏渲染的解释:渲染与cpu、gpu
    渲染、render与绘制
    算法沉思:算法的构成
    待阅备份
    iOS进阶之页面性能优化
    iOS--性能优化--保持界面流畅
    iOS开发中的Markdown渲染
    OS开发小记:iOS富文本框架DTCoreText在UITableView上的使用
    iOS UI的几种模式
  • 原文地址:https://www.cnblogs.com/WJL123/p/9852325.html
Copyright © 2020-2023  润新知