jmp到函数的问题,麻烦熟悉的兄弟给解释下,多谢

rageliu 2008-03-11 11:19:47
我用vc写了一个函数,void Test();假设Test函数开始地址为0x12345678
然后在其他地方使用汇编跳转 jmp Test.

我本来以为最终会是jmp 0x12345678,这样直接跳到函数头。但调试发现是首先jmp 0x12340000,然后在0x12340000处才是指令jmp 0x12345678。

为什么会是2次跳转,怎么才可以直接一次jmp到目标指令呢
...全文
156 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttlyfast 2008-03-16
  • 打赏
  • 举报
回复
jmp jmp
rageliu 2008-03-16
  • 打赏
  • 举报
回复
各位,我用release编译,还是有2次jmp
大熊猫侯佩 2008-03-15
  • 打赏
  • 举报
回复
编译器自身的实现不同,从汇编角度看皆可。
alan001 2008-03-15
  • 打赏
  • 举报
回复
学习

UP
homesos 2008-03-15
  • 打赏
  • 举报
回复
用纯汇编写就行了,写一个ASM文件,用VC写,还要看编译器,不同的编译器,不同的编译选项,不同的编译类型都是不尽相同的。
zhoujianhei 2008-03-14
  • 打赏
  • 举报
回复
使用

__declspec (naked)

声明函数
rageliu 2008-03-14
  • 打赏
  • 举报
回复
谢谢楼上,这个只是没有push ebp,mov ebp ,esp等一般的函数入口形式代码而已啊,和jmp没关系吧
rageliu 2008-03-11
  • 打赏
  • 举报
回复
哦,感谢,
cnzdgs 2008-03-11
  • 打赏
  • 举报
回复
用Debug版编译就是这样,用Release编译就不会多jmp了。
用户 昵称 2008-03-11
  • 打赏
  • 举报
回复
http://www.qqgb.com/Program/VC/VCJQ/Program_174978.html

21,459

社区成员

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

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