作者phkmalloc (SLOW)
看板C_and_CPP
標題[問題] assembler 知道label 的address
時間Fri Jul 31 14:46:52 2009
請問有沒有辦法可以比較快查到assembly 中的label,
變成binary 之後的address ?
我要問的是
12 .LBB1_1:
13 ldr r3, .LCPI1_44
14 mov r2, #22
15 str r2, [r3]
16 .LBB1_2:
17 ldr r3, .LCPI1_43
18 mov r2, #71, 30 @ 284
19 orr r2, r2, #2, 18 @ 32768
20 str r2, [r3]
21 ldr r3, .LCPI1_45
22 mov r2, #130, 24 @ 33280
23 str r2, [r3]
像這種的function 內的 label
.LBB1_1 .LBB1_2 代表怎樣的address
而不是objdump 找出來的 <_init> 這種其實是function header 的label
00008000 <_init>:
7 8000: e1a0c00d mov ip, sp
8 8004: e92ddff0 stmdb sp!, {r4, r5, r6, r7, r8, r9,
sl, fp, ip, lr, pc}
9 8008: e24cb004 sub fp, ip, #4 ; 0x4
10 800c: eb000024 bl 80a4 <frame_dummy>
11 8010: eb0024f8 bl 113f8 <__do_global_ctors_aux>
12 8014: e91b6ff0 ldmdb fp, {r4, r5, r6, r7, r8, r9,
sl, fp, sp, lr}
13 8018: e1a0f00e mov pc, lr
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.166.28
→ timTan:objdump or readelf , these tool is in linux. 07/31 15:33
→ phkmalloc:1F這樣不是等於沒有回答嗎 07/31 15:51
→ james732:一樓有回答了吧 不然你想要知道什麼樣的答案? 07/31 15:53
推 zlw:如果你要的答案不是Linux,你一開始就該講清楚 07/31 15:54
推 final01:可是我剛試了GCC好像不保留label? 該怎麼下參數? 07/31 15:54
→ phkmalloc:你自己試試看 可不可以。 07/31 15:56
→ final01:不然就可 objdump -D xxx |grep label 07/31 15:56
→ phkmalloc:這樣沒有label ! 07/31 15:58
→ final01:剛又試了一下 應該可以 07/31 16:00
推 zlw:*.lst檔是用來幹嘛的? 07/31 16:02
※ 編輯: phkmalloc 來自: 140.113.166.28 (07/31 16:12)
※ 編輯: phkmalloc 來自: 140.113.166.28 (07/31 16:17)
→ pico2k:請用as --help查相關指令(如果你是用gcc toolchain) 07/31 17:47
→ phkmalloc:我找過了 找不到,真的有的話 請你告訴我 感謝 07/31 19:42
→ pico2k:gcc -Xassembler -a xxxx.c 07/31 20:54
→ phkmalloc:這樣是傳參數給as。 請問你覺得 有關係嗎? 08/01 10:13