“PTR”和“NEAR PTR”有什么区别

  • 本文关键字:PTR 区别 NEAR assembly x86 masm
  • 更新时间 :
  • 英文 :


我正在查找包含"NEAR PTR"的示例,但它们很容易被"PTR"替换。使用"NEAR PTR"有什么好处吗?

NEAR是16位过去的遗产。假设您的代码是 32 位或 64 位,它们是相同的。

这是关于内存段的(维基百科链接到x86 32位和64位(。

在 LABEL 语句中,PTR 和 NEAR PTR 都只存储一个 32/64 位内存地址,没有段。

如果在 64 位 MASM 下编译下一个代码:

_DATA SEGMENT
    justPtr LABEL PTR db
    nearPtr LABEL NEAR PTR db
    justPtrSize dd SIZEOF justPtr
    nearPtrSize dd SIZEOF nearPtr
_DATA ENDS

并在Visual Studio调试器下检查大小:

?justPtrSize
8
?nearPtrSize
8

事实上,PTR 占用 8 字节(64 位(,与 NEAR PTR 相同。

最新更新