MASM32 中使用的这个符号:
@CodeSize返回一个表示默认代码距离的整数。
我想了解“默认代码距离”是什么意思?
托尼
默认代码距离为 NEAR 或 FAR。
@CodeSize 可以取两个值,0 或 1,它决定跳跃、呼叫等是在 NEAR 还是 FAR 距离。
如果您使用的是 TINY、SMALL、COMPACT 或 FLAT 内存模型,则所有跳转等都是 NEAR,并且@CodeSize == 0。如果您使用的是 HUGE、LARGE、MEDIUM 内存模型,则其他跳转等都是 FAR 和 @代码大小 == 1。
很可能是两个最远的代码之间的最大距离(以字节为单位,在内存中)。这可能会影响跳转的生成方式,因为可能有不同的指令能够实现不同的跳转长度。更短的跳转可以用更短(更小,通常更快)的指令进行编码。
这个页面提到了人们可以期待的整数值:
0 表示 TINY、SMALL、COMPACT 和 FLAT 型号,1 表示 MEDIUM、LARGE 和 HUGE 型号(数值相等)。