我正在查找包含“NEAR PTR”的示例,但它们很容易用“PTR”替换。使用“NEAR PTR”有什么好处吗?
NEAR是16位过去的遗产。假设您的代码是32位或64位,它们是相同的。
这是关于内存段(维基百科链接到x86 32-bit和64-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相同。