assembly - : operator do in assembly? 是什么

标签 assembly x86 operators nasm

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

最佳答案

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

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

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

  12340
+ 05678
  -----
  179B8

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

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

关于assembly - : operator do in assembly? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122548/

相关文章:

c - 如何使用 LKM Hook 中断门

assembly - 如何在 x86 汇编语言中创建嵌套循环

php - 变量 order/side 与关系运算符有什么区别?

c++ - 运算符的初始化列表和 RHS

rxjs - Angular 6 单元测试 rxjs 6 操作符点击单元测试拦截器

objective-c - 在 xcode 中创建和使用汇编程序库

assembly - 如何在64位Linux系统上执行32位shellcode?

assembly - 用汇编语言访问数组元素(Windows)

c++ - CMAKE - 调试/交叉构建?

assembly - AVX-512中的压缩和扩展指令之间有什么区别?