汇编单步执行时发现了一个 call .+914

wos
  • 10

写完一个汇编程序之后,单步执行,看到原来用用汇编调用函数的指令 call xxx 都变成了 call .+914 之类的。请问大家一下,这个 +914 是什么意思?或者说,这个 + 或者 - 是什么意思?

回复
阅读 2.6k
1 个回答

请把问题描述清楚,什么平台下的汇编?

看字面意思很像相对地址调用(我胡诌的名词),call +914,大概是说被调用的函数的地址在当前地址偏后914字节位置,所以CPU在进行指令预取的时候,就直接把PC(程序计数器)中的地址加914,然后按新的PC进行指令预取了。如果是call -914,就是指被调用过程在当前地址前914个字节,CPU会把当前PC值减914去预取指令。

上面是我的猜测,因为和相对地址调用很像,但是我不知道你的代码中“.+914”前面的“.”是干嘛的,也许只是修饰符?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏