延迟绑定 PLT

延迟绑定 PLT

测试代码:main.c

void func1(int i){
   
	printf("%d\n",i);
}

int main() {
   
	int a = 1;
	func1(a);

	return a;
}
$ gcc -g main.c -o main
$ objdump -d main
Disassembly of section .plt:
...
00000000004003e0 <.plt>:
  4003e0:	ff 35 22 0c 20 00    	pushq  0x200c22(%rip)        # 601008 <_GLOBAL_OFFSET_TABLE_+0x8>
  4003e6:	ff 25 24 0c 20 00    	jmpq   *0x200c24(%rip)        # 601010 <_GLOBAL_OFFSET_TABLE_+0x10>
  4003ec:	0f 1f 40 00          	nopl   0x0(%rax)

00000000004003f0 <printf@plt>:
  4003f0:	ff 25 22 0c 20 00    	jmpq   *0x200c22(%rip)        # 601018 <printf@GLIBC_2.2.5>
  4003f6:	68 00 00 00 00       	pushq  $0x0
  4003fb:	e9 e0 ff ff ff       	jmpq   4003e0 <.plt>

  ...
00000000004004fd <func1>:
  4004fd:	55                   	push   %rbp
  4004fe:	48 89 e5             	mov    %rsp,%rbp
  400501:	48 83 ec 10          	sub    $0x10,%rsp
  400505:	89 7d fc             	mov    %edi,-0x4(%rbp)
  400508:	8b 45 fc             	mov    -0x4(%rbp),%eax
  40050b:	89 c6                	mov    %eax,%esi
  40050d:	bf c4 05 40 00       	mov    $0x4005c4,%edi
  400512:	b8 00 00 00 00       	mov    $0x0,%eax
  400517:	e8 d4 fe ff ff       	callq  4003f0 <printf@plt>
  40051c:	c9                   	leaveq 
  40051d:	c3                   	retq   

000000000040051e <main>:
  40051e:	55                   	push   %rbp
  40051f:	48 89 e5             	mov    %rsp,%rbp
  400522:	48 83 ec 10          	sub    $0x10,%rsp
  400526:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%rbp)
  40052d:	8b 45 fc             	mov    -0x4(%rbp),%eax
  400530:	89 c7                	mov    %eax,%edi
  400532:	e8 c6 ff ff ff       	callq  4004fd <func1>
  400537:	8b 45 fc             	mov    -0x4(%rbp),%eax
  40053a:	c9                   	leaveq 
  40053b:	c3                   	retq   
  40053c:	0f 1f 40 00          	nopl   0x0(%rax)
...

                
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值