V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  bfc0  ›  全部回复第 1 页 / 共 1 页
回复总数  5
你通过 gcc -Wall -g -o test.o -c test.c -m32 生成的是“可重定位目标文件”,其经过链接后得到“可执行目标文件”

在链接前,符号的具体地址是不知道的,所以会生成占位的指令,就是那两个指向 `print_banner+xxx` 的 call 指令

链接后两个 call 应该是 `__x86.get_pc_thunk.ax` 和 `puts@plt`

至于为什么要有 `get_pc_thunk` 调用是因为 x86 没有 PC 相对寻址,所以需要通过 call 让处理器将 PC 压栈
ZSM3S964XRKDKU3AXUWB3XB 已兑换,感谢🙏
C0KNTXXDKQ5K82M6YM4HQF5 已用
352 天前
回复了 Linvas 创建的主题 程序员 如何自己搭一个 GIS 的地图?
自建的话用 Geoserver 做瓦片服务,前端用 Leaflet 或者 openlayers 搭一个
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2352 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 04:10 · PVG 12:10 · LAX 21:10 · JFK 00:10
Developed with CodeLauncher
♥ Do have faith in what you're doing.