• 汇编语言之第二章寄存器


    一、通用寄存器

    一个典型CPU由运算器、寄存器、控制器构成,而寄存器是CPU中程序员可以用指令读写的部件。不同的CPU,寄存器的个数、结构是不同的。

    8086CPU的寄存器都是16位的,由于8086CPU上一代CPU中寄存器都是8位的,为了兼容性,8086CPU的通用寄存器(通常用来存放一般性的数据)AX、BX、CX、DX这四个寄存器可以分成两个可独立使用的8位寄存器来用。AX=AH+AL     BX=BH+BL   CX=CH+CL   DX=DH+DL   。AX 的低八位构成AL,高八位构成AH。

    二、字节,字,进制

    字节:记为byte,一个字节由8个bit组成,可以存在8位寄存器中。

    字:一个字由两个字节组成,可以存在一个16位寄存器中。

    一个字可以储存在一个16位寄存器,字的高八位储存在高八位寄存器,低八位储存在低八位寄存器。

    为了区分进制,在十六进制表示的数据的后面加H,在二进制表示的数据后面加B,十进制表示的数据后面什么也不加。

    三、指令,数据改变

    汇编几条常用指令举例:

     寄存器中数据的改变:

     

    注意:指令的两个操作对象的位数应相同,同时实现相加操作时,应注意内存溢出,防止出错漏位。

    四、地址加法器,CS,IP,jmp

    所有的内存单元构成的储存空间是一个一维的线性空间,每一个内存空间在这个空间中都有唯一的地址,即物理地址。

    16位结构CPU能够一次性处理传输暂时储存的信息的最大长度是16位的,寄存器和运算器之间的通道为16位。

    8086CPU有20位地址总线,可以传送20位地址。但是CPU是16位结构。为了充分利用不浪费,8086CPU采用一种在内部用两个16位地址合成的方法来形成20位的物理地址。

    地址加法器采用   物理地址=段地址*16+偏移地址    用段地址和偏移地址合成物理地址

    CS和IP是8086CPU中两个最关键的寄存器,CS为代码段寄存器,IP为指令指针寄存器,IP每次是根据指令的空间大小进行更新。

    修改CS、IP的指令:jmp指令。

    ①同时修改CS、IP的内容:jmp段地址:偏移地址

    ②只修改IP的内容:jmp 某一合法寄存器

  • 相关阅读:
    Maven打jar包(有依赖)
    java使用ffmpeg进行多个视频合并
    ffmpeg视频精准剪切
    windows下java调用海康sdk,Unable to load library 'HCNetSDK'
    java使用JNA框架调用dll动态库
    排序和反转
    118. 杨辉三角
    1394. 找出数组中的幸运数
    1491. 去掉最低工资和最高工资后的工资平均值
    1332. 删除回文子序列
  • 原文地址:https://www.cnblogs.com/bowentianxia/p/9748708.html
Copyright © 2020-2023  润新知