[問題] assembler 知道label 的address

看板C_and_CPP (C/C++)作者 (SLOW)時間16年前 (2009/07/31 14:46), 編輯推噓3(3011)
留言14則, 6人參與, 最新討論串1/1
請問有沒有辦法可以比較快查到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

07/31 15:33, , 1F
objdump or readelf , these tool is in linux.
07/31 15:33, 1F

07/31 15:51, , 2F
1F這樣不是等於沒有回答嗎
07/31 15:51, 2F

07/31 15:53, , 3F
一樓有回答了吧 不然你想要知道什麼樣的答案?
07/31 15:53, 3F

07/31 15:54, , 4F
如果你要的答案不是Linux,你一開始就該講清楚
07/31 15:54, 4F

07/31 15:54, , 5F
可是我剛試了GCC好像不保留label? 該怎麼下參數?
07/31 15:54, 5F

07/31 15:56, , 6F
你自己試試看 可不可以。
07/31 15:56, 6F

07/31 15:56, , 7F
不然就可 objdump -D xxx |grep label
07/31 15:56, 7F

07/31 15:58, , 8F
這樣沒有label !
07/31 15:58, 8F

07/31 16:00, , 9F
剛又試了一下 應該可以
07/31 16:00, 9F

07/31 16:02, , 10F
*.lst檔是用來幹嘛的?
07/31 16:02, 10F
※ 編輯: phkmalloc 來自: 140.113.166.28 (07/31 16:12) ※ 編輯: phkmalloc 來自: 140.113.166.28 (07/31 16:17)

07/31 17:47, , 11F
請用as --help查相關指令(如果你是用gcc toolchain)
07/31 17:47, 11F

07/31 19:42, , 12F
我找過了 找不到,真的有的話 請你告訴我 感謝
07/31 19:42, 12F

07/31 20:54, , 13F
gcc -Xassembler -a xxxx.c
07/31 20:54, 13F

08/01 10:13, , 14F
這樣是傳參數給as。 請問你覺得 有關係嗎?
08/01 10:13, 14F
文章代碼(AID): #1ASfDU6N (C_and_CPP)
文章代碼(AID): #1ASfDU6N (C_and_CPP)