【问题标题】:Assembly language programming segmentation汇编语言编程分割
【发布时间】:2020-02-27 15:14:33
【问题描述】:

在汇编语言中,当我们声明像 ds:data,cs:code,es:extra,ss:stack 等时。我有点困惑,这些段是在 RAM 或硬盘内存中创建的。

【问题讨论】:

    标签: assembly x86-16 segment memory-segmentation


    【解决方案1】:

    对于您的程序,它始终在 RAM 中。如果它在裸机上运行,​​那么对于硬件也是如此。

    但是,如果程序在典型的现代操作系统下运行,您不知道是否以及何时将某些数据移动到磁盘。在访问尝试时,您的程序可能会停止,然后在操作系统将数据返回到 RAM 时恢复。 详情请见Paging

    而且,您应该注意谁以及如何“创建”细分。如果您在实模式下使用 x86,则应分配内存并将数据放在 1MB 地址空间中。只有这样你才能将段地址加载到段寄存器并声明它的用途。

    【讨论】:

      猜你喜欢
      • 2014-10-07
      • 2011-05-03
      • 1970-01-01
      • 2010-12-24
      • 2012-04-06
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      相关资源
      最近更新 更多