汇编代码中的ILT是什么意思

htjhy 2006-08-06 04:28:37
VC的汇编代码中经常看到
call @ILT+260 (00401109)
这类代码。
然后00401109放着一个jmp指令。

ILT是什么表的缩写
编译器为什么要通过ILT调用函数,什么情况下编译器会通过ILT调用函数?
...全文
689 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
CH_MARS 2006-08-10
  • 打赏
  • 举报
回复
up学习中。。。
htjhy 2006-08-10
  • 打赏
  • 举报
回复
Cody2k3说得应该是对的
ILT可能是 Incremental Linking Table 的缩写,或者Incremental Linking Thunks 。

关闭Link Incrementally后,编译器就不会产生ILT。

可见,这个thunk表是增量编译所需要的数据结构。

其实这个符号只是开发编译器的程序员随便起的变量名。标准答案并不重要。谢谢各位参与!
我啃 2006-08-10
  • 打赏
  • 举报
回复
静态表
Cody2k3 2006-08-09
  • 打赏
  • 举报
回复
ILT = Incremental Linking Table
htjhy 2006-08-09
  • 打赏
  • 举报
回复
提一下
htjhy 2006-08-06
  • 打赏
  • 举报
回复
这个ILT只在debug版中才有,在release版中,都是直接调用函数。
我想可能是debug版为了加快编译速度使用的内部结构,这样某个函数地址变化时,只需要修改ILT,不用修改每个引用语句。
不知道猜得对不对?

使用这个结构与“类实现机制”有什么关系?
它只不过多了一个中转。

大熊猫侯佩 2006-08-06
  • 打赏
  • 举报
回复
在 HLA 的类实现机制中有着类似的实现,楼主有兴趣可以看看。
大熊猫侯佩 2006-08-06
  • 打赏
  • 举报
回复
可以参考:

http://bbs.smatrix.cn/simple/index.php?t11315.html

http://bbs.whnet.edu.cn/cgi-bin/bbstcon?board=SysInternals&file=M.993291676.A
大熊猫侯佩 2006-08-06
  • 打赏
  • 举报
回复
@ILT是一个静态表,它记录了一些函数的入口然后跳过去,每个跳转
jmp占一个字节,然后就是一个四字节的内存地址,所以加起为五个字
节,这样就实现了类的机制。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧