我正在查找包含“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 相同。
关于assembly - “PTR” 和 “NEAR PTR” 和有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55843936/