以前看汇编代码时,从来就没有注意到call, jmp及其它条件调转指令的目标地址会在编译成机器代码的时候会被改变。最近看VxWorks 5.5的x86中断源码时,突然看到call指令调用的不是所调用函数的地址,而是该所调用函数地址与call指令所在地址的下一条指令的地址之差。当时真是百思不得其解,后偶然从一些资料上得知这是跟机器相关的。这应该是出于缩短指令长度的考虑,原来如此!(当然也有用绝对调转地址的)
跳转指令之目标地址的疑惑!
最新推荐文章于 2024-02-19 20:18:33 发布
本文探讨了在汇编语言中使用call和jmp指令时,目标地址如何被编译为相对于当前指令位置的偏移量,而不是绝对地址。这种做法有助于减少指令的长度。
9767

被折叠的 条评论
为什么被折叠?



