assembly - : operator do in assembly? 是什么

: 运算符在汇编中做什么? 代码如下:DS:DX 我还没有找到该运算符(operator)的任何文档。 (我正在使用 NASM)

最佳答案

那实际上只是一个寄存器分隔符,而不是运算符。这意味着使用 DX 寄存器作为相对于 DS 段寄存器基址的偏移量。

它实际你的地址取决于你运行的模式(真实的或 protected )。

例如在实模式下,段寄存器乘以 16 并与偏移寄存器相加得到一个 20 位的物理地址。如果 DS0x1234 并且 DX0x5678:

  12340
+ 05678
  -----
  179B8

在保护模式下,DS 实际上是一个段选择器,用于在表中查找内存的基地址,然后将其添加到偏移寄存器中给个值。

该值始终是一个虚拟地址,在确保从外部存储调入相关虚拟内存后,内存管理单元 (MMU) 将其映射到物理地址。

https://stackoverflow.com/questions/7122548/

相关文章:

git - Mercurial : Match remote repo's changesets

c# - 我怎样才能得到列表的一半元素?

css - 通过 CSS 为仅带换行符的文本设置背景颜色

.net - 有人使用 Amazon EC2 + SQL Azure 吗?

iphone - MKMapView 在点击时隐藏导航栏,就像在照片应用程序中一样,而不会丢失 MK

r - 如何对字符向量的每个元素中的字符进行排序?

xml - XSL-FO - 如何生成目录?

scala - 是否可以对变量使用 match scala 操作?

php - 使用 foreach 创建 PHP 关联数组时如何为键分配名称?

vb.net - 是否有与 VB6 Support.TabLayout 方法等效的 VB.NET?