汇编 内存段划分和寄存器

内存段

  BSS段:BSS段,Block Start by Symbol,通常指用来存放程序中未初始化(未赋值: int x )的全局变量的一块内存区域,属于静态内存分配。

  数据段:存放程序中已初始化的全局变量的一块内存区域,属于静态内存分配。(赋值int x=100;)

  代码段:通常指用来存放程序执行代码的一块内存区域(编译后)。

  堆:用于存放进程运行中被动态分配的内存段,大小可动态变化。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张),当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)。

  栈:栈又称堆栈,存放程序临时创建的局部变量

寄存器

  分类:

  通用寄存器:

    数据寄存器:

      AX是主要累加器(EAX)

      BX基址寄存器(EBX)

      CX技术寄存器(ECX)

      DX数据寄存器(EDX)

    指针寄存器

      IP:存储下一个要执行的指令的偏移地址。IP与CS寄存器给出了完整的代码段中的当前指令地址。(EIP)

      SP:提供程序堆栈内的偏移值。SP和SS寄存器是指程序堆栈的当前位置的数据或地址。(ESP)

      BP:帮助在引用的参数变量传递到一个子程序。(EBP)

AX是主要累加器,用于输入/输出和多数算术运算指令。

    BX基址寄存器

    CX技术寄存器

    DX数据寄存器

    索引寄存器

  控制寄存器

  段寄存器

  

  数据寄存器:

    

  

原文地址:https://www.cnblogs.com/tf-Y/p/4922912.html