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

问题描述 投票:0回答:1

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

assembly x86 masm
1个回答
1
投票

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

这是关于内存段(维基百科链接到x86 32-bit64-bit)。

LABEL statement中,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相同。

© www.soinside.com 2019 - 2024. All rights reserved.