: 运算符在汇编中做什么?
代码如下:DS:DX
我还没有找到该运算符(operator)的任何文档。
(我正在使用 NASM)
最佳答案
那实际上只是一个寄存器分隔符,而不是运算符。这意味着使用 DX
寄存器作为相对于 DS
段寄存器基址的偏移量。
它实际给你的地址取决于你运行的模式(真实的或 protected )。
例如在实模式下,段寄存器乘以 16 并与偏移寄存器相加得到一个 20 位的物理地址。如果 DS
是 0x1234
并且 DX
是 0x5678
:
12340
+ 05678
-----
179B8
在保护模式下,DS
实际上是一个段选择器,用于在表中查找内存的基地址,然后将其添加到偏移寄存器中给个值。
该值始终是一个虚拟地址,在确保从外部存储调入相关虚拟内存后,内存管理单元 (MMU) 将其映射到物理地址。
关于assembly - : operator do in assembly? 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122548/