MASM32 “默认代码距离是什么意思”?
MASM32 中使用的符号:
@CodeSize 返回表示默认代码距离的整数。
我想了解“默认代码距离”是什么意思?
托尼
This symbol used in MASM32:
@CodeSize Returns an integer representing the default code distance.
I'm trying to understand what 'default code distance' means?
Tony
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
默认代码距离为 NEAR 或 FAR。
@CodeSize 可以采用两个值,0 或 1,这决定了跳跃、调用等距离是近还是远。
如果您使用 TINY、SMALL、COMPACT 或 FLAT 内存模型,则所有跳转等都是 NEAR,并且 @CodeSize == 0。
如果您使用 HUGE、LARGE、MEDIUM 内存模型,则 als 跳转等为 FAR 并且 @CodeSize == 1。
The default code distance is either NEAR or FAR.
@CodeSize can take two values, either 0 or 1, which determines if jumps, calls etc. are in NEAR or FAR distance.
If you are using the TINY, SMALL, COMPACT or FLAT memory model, all jumps etc. are NEAR, and @CodeSize == 0.
If you are using the HUGE, LARGE, MEDIUM memory model, als jumps etc. are FAR and @CodeSize == 1.
很可能是两个最远的代码之间的最大距离(以字节为单位,在内存中)。这可能会影响跳转的生成方式,因为可能存在具有不同跳转长度的不同指令。可以用更短(更小,通常更快)的指令来编码更短的跳转。
此页面提到了可以使用哪些整数值预计:
Very probably the maximum distance (in bytes, in memory) between the two most distant pieces of code. This might influence how jumps are generated, since there can be different instructions capable of different jump lengths. A shorter jump can be encoded with a shorter (smaller, often faster) instruction.
This page mentions what integer values one can expect: