. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
综合研究
主题 : :
main函数的偏移地址一直是ifa
[待解决]
回复[
6
次 ] 点击[
1188
次 ]
abob
[帖 主]
[ 发表时间:2009-04-03 15:32 ]
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
/* pm.c */
main()
{
printf("%x\n",main);
}
这个是我的实验,运行后得到偏移地址是1fa。看到大家也都是这个偏移地址。我想原因是跟c0s.obj有关。
除了使用tc编译连接生成exe外,还可以使用tcc.exe tlink.exe(和汇编的masm link差不多)
如tcc -c pm.c
tlink c0s pm,pm,,cs
如果这里不使用c0s,如使用c0m.obj,打印出的值就不是1fa了。
abob
[第
4
楼]
[ 回复时间:2009-04-09 13:49 ]
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07
不过c0s中调用的仍然是main函数
D:\minic>debug pm.exe
-u
0B68:0112 FF368600 PUSH [0086]
0B68:0116 FF368400 PUSH [0084]
0B68:011A E8F100 CALL 020E --这里原来是调用的1fah,现在时当前main函数的地址20eh
0B68:011D 50 PUSH AX
0B68:011E E84601 CALL 0267
0B68:0121 2E CS:
0B68:0122 8E1EF801 MOV DS,[01F8]
0B68:0126 E87C00 CALL 01A5
0B68:0129 0E PUSH CS
0B68:012A FF161A04 CALL [041A]
0B68:012E 33C0 XOR AX,AX
0B68:0130 8BF0 MOV SI,AX
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved