zoukankan      html  css  js  c++  java
  • 汇编语言之第二章寄存器

    一、通用寄存器

    一个典型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 某一合法寄存器

  • 相关阅读:
    H5前端上传文件的几个解决方案
    MyEclipse和Eclipse各个版本的汉化破解(包括7.59.0和Eclips的ehelios、indigo各版本)
    学习C#中的事件和委托
    JS学习笔记(一)JS处理JSON数据
    图解Eclipse开发C++、C语言的配置过程使用CDT和MinGw
    ASP.NET使用C#实现的最简单的验证码方法
    微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
    PHP开发笔记(二)PHP的json_encode和json_decode问题
    C博客作业00——我的第一篇博客
    extern "c"
  • 原文地址:https://www.cnblogs.com/bowentianxia/p/9748708.html
Copyright © 2011-2022 走看看