MASM32'默认代码距离是什么意思'?

时间:2009-11-24 13:45:57

标签: assembly x86 masm32

MASM32中使用的符号:

@CodeSize 返回表示默认代码距离的整数。

我试图理解“默认代码距离”是什么意思?

2 个答案:

答案 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和   巨大的模型(数字相等)。