:
[]$ readelf -s /usr/lib64/libc.so.6|grep usleep
1542: 00000000000f9090 57 FUNC GLOBAL DEFAULT 12 [email protected]@GLIBC_2.2.5
1560: 0000000000000000 0 FILE LOCAL DEFAULT ABS usleep.c
7073: 00000000000f9090 57 FUNC GLOBAL DEFAULT 12 usleep
[]$ objdump -t /usr/lib64/libc.so.6|grep usleep
0000000000000000 l df *ABS* 0000000000000000 usleep.c
00000000000f9090 g F .text 0000000000000039 usleep
[]$ nm -S /usr/lib64/libc.so.6|grep usleep
00000000000f9090 0000000000000039 T usleep
가 모든 경우의 크기는 0x39 (57) 바이트입니다. 당신이 주어진 함수의 명령어 수를 원하는 경우
, 당신은 여전히 objdump를 사용할 수 있습니다
[]$ objdump -d /usr/lib64/libc.so.6 | perl -ne 'BEGIN { $/="\n\n" }; print if $_ =~ /usleep/;'
는 ... 분해를 나열합니다.
[]$ echo $(objdump -d /lib32/libc.so.6 | perl -ne 'BEGIN { $/="\n\n" }; print if $_ =~ /usleep/;'|wc -l)-2| bc -l
를 동적 솔루션을 위해 당신은 반환 한 통계를 사용할 수 있습니다 : 명령의 정확한 수를 들어 당신은 카운트 라인을 뺄 필요가
[]$ perf stat uptime
10:57:28 up 21 days, 10:30, 4 users, load average: 2.00, 1.98, 2.16
Performance counter stats for 'uptime':
0.719094 task-clock (msec) # 0.802 CPUs utilized
0 context-switches # 0.000 K/sec
0 cpu-migrations # 0.000 K/sec
123 page-faults # 0.171 M/sec
2,297,093 cycles # 3.194 GHz
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
1,985,122 instructions # 0.86 insns per cycle
389,193 branches # 541.227 M/sec
15,847 branch-misses # 4.07% of all branches
0.000896079 seconds time elapsed
는 명령을 몇 번 실행하는 경우 것 가장 가능성이 실행 사이의 값이 변동 참조하십시오. 그러므로 이것은 정확한 과학이 아닙니다.
이 어셈블리 언어 프로그램을 마치려면 얼마나 많은 지침이 필요합니까? 'jmp $'? –