MASM32中使用的符号:
@CodeSize 返回表示默认代码距离的整数。
我试图理解“默认代码距离”是什么意思?
贝
答案 0 :(得分:3)
默认代码距离为NEAR或FAR。
@CodeSize可以取两个值,0或1,它确定跳转,调用等是否在NEAR或FAR距离内。
如果您使用的是TINY,SMALL,COMPACT或FLAT内存模型,则所有跳转等都是NEAR,而@CodeSize == 0。 如果您正在使用HUGE,LARGE,MEDIUM内存模型,als jumps等是FAR和@CodeSize == 1.
答案 1 :(得分:1)
很可能是两个最远的代码段之间的最大距离(以字节为单位,在内存中)。这可能会影响跳转的生成方式,因为可能存在不同跳转长度的不同指令。较短的跳转可以使用更短(更小,通常更快)的指令进行编码。
This page提到了可以预期的整数值:
0表示TINY,SMALL,COMPACT和FLAT 模型,1和MEDIUM,LARGE和 巨大的模型(数字相等)。