zoukankan      html  css  js  c++  java
  • 汇编基础概念



    1:数据寄存器,一般称之为通用寄存器组 

         8086 有8个8位数据寄存器, 
         这些8位寄存器可分别组成16位寄存器: 
         AH&AL=AX:累加寄存器,常用于运算; 
         BH&BL=BX:基址寄存器,常用于地址索引; 
         CH&CL=CX:计数寄存器,常用于计数; 
         DH&DL=DX:数据寄存器,常用于数据传递。 

       2:地址寄存器/段地址寄存器 

         为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址: 
         CS(Code Segment):代码段寄存器; 
         DS(Data Segment):数据段寄存器; 
         SS(Stack Segment):堆栈段寄存器; 
         ES(Extra Segment):附加段寄存器。 

    3:特殊功能的寄存器 

         IP(Instruction Pointer):指令指针寄存器,与CS配合使用,可跟踪程序的执行过程; 
         SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置。 
         BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置; 
         SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针; 
         DI(Destination Index):目的变址寄存器,可用来存放相对于 ES 段之目的变址指针。 

    一、汇编语言中,为什么SI和DI不能同时使用汇编 
    其实你可以想一下,这两个寄存器的意思,SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就得出了需要基址寄存器。 
    你要是把这两个寄存器同时使用,那你地址变化的基址都没有,你该怎么变化呢?你在谁的基础上变化(也就是地址偏移)? 
    对于这些汇编中的规定,其实有时并不需要书上详细的介绍,我们都应该可以从中推导出这些规则,书上的那些介绍个人认为只是用来验证我们的推测的。或是对我们所掌握的知识的进行检测,用来说明我们所掌握的是对的! 
    二、si,di使用的例子 
    SI DI是8086CPU中和bx功能相近的寄存器,SIDI不能够分成两个8位寄存器来使用. 

    1、8086有20位地址总线,可传送20位地址,寻址能力为1M,但是8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K,那么8086CPU是如何用内部16位的数据转换为20位的地址?

    8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址

     物理地址=段地址*16+偏移地址

     

    2、

    段地址*16 必然是16的倍数,所以一个段的起始地址一定是16的倍数

    偏移地址为16位,16位地址寻址能力为64K,所以一个段的长度最大为64K

    3、物理地址=段地址*16+偏移地址

    这个有很多种组合方式,CPU可以用不同的段地址和偏移地址来组成同一个物理地址

    4、为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址: 

    CS(Code Segment):代码段寄存器; 
    DS(Data Segment):数据段寄存器; 
    SS(Stack Segment):堆栈段寄存器; 
    ES(Extra Segment):附加段寄存器。 

    5、寄存器和数据之间传递是占3个字节,寄存器之间传递是两个字节。

    6、

  • 相关阅读:
    Nginx 启用gzip压缩
    HTTP压缩的过程
    什么是HTTP压缩及HTTP压缩的过程
    Fiddler抓包工具总结
    HTTP内容编码和HTTP压缩的区别
    LINQ query on a DataTable
    C# Collection for "most recently used"
    Keep timer (setInterval) running while reloading page
    Is there a way to detect if a browser window is not currently active?
    Force Logout users if users are inactive for a certain period of time
  • 原文地址:https://www.cnblogs.com/roscangjie/p/12220654.html
Copyright © 2011-2022 走看看