objdump幫助理解鏈結過程。
linker將各種
*.o的檔案鏈結在一起。使用
objdump
可以看到很多資訊。
objdump -d the_file.o
可以看到含有彙編助記符的指令。
objdump -t the_file.o
該檔案可以在安裝目錄c:\nxp\s32ds_power_v2017.r1\cross_tools\powerpc-eabivle-4_9\bin\powerpc-eabivle-objdump.exe下找到。
通過使用objdump就可以將目標檔案(*.o)分析清楚。從來了解鏈結器的工作機制。
在mpc5744p中,
有乙個問題在於,我們在c語言中定義的各種
uint32_t int32_t
,其實只在彙編級別的**中是幾乎完全看不到這種資訊的。
這一點需要明確。在
powerpc
的彙編體系中,乙個
char
和乙個int
的區別就是,乙個採用的是
stw(store word)
,另外乙個是
stb(store byte)
。發生函式呼叫的時候一般和堆疊相關。在powerpc架構中,暫存器
r1被用來當做
sp。在有一些引數為
void
的函式進入該函式之前,都會使用以下彙編語句
e_stwu r1,-0x10(r1)
該語句的二進位制表示為(使用十六進製制):
182106f0
在s19檔案(srec)中搜尋關鍵字「
182106f0
」,如果找到了。這說明這是乙個發生函式呼叫的地方。但並不是所有發生函式呼叫的形式都是這個樣子。
關於powerpc的彙編指令,其指令集的形式規定並不是特別嚴格。同一種操作可能有不同的記法。如果僅僅只理解別人已經寫好的彙編(比如微控制器工程中的一些
*.s的檔案),對於初學者靠猜可能會幫助理解。因為在短時間內掌握完全不可能。
微控制器c指令右移指令 微控制器算術運算類指令整理
一 不帶進製位的微控制器加法指令 add a,data 例 add a,10h add a,direct 例 add a,10h add a,rn 例 add a,r7 add a,ri 例 add a,r0 用途 將a中的值與其後面的值相加,最終結果否是回到a中。例 mov a,30h add a...
51微控制器彙編指令速查表
51微控制器彙編指令速查表 指令格式 功能簡述 位元組數 週期 一 資料傳送類指令 mov a,rn 暫存器送累加器 1 1 mov rn,a 累加器送暫存器 1 1 mov a ri 內部ram單元送累加器 1 1 mov ri a 累加器送內部ram單元 1 1 mov a data 立即數送累...
tiri微控制器 51微控制器 微控制器組合語言學習
mcs 51微控制器的特殊功能暫存器 符號位址 功能介紹 bf0h b暫存器 acce0h 累加器psw d0h程式狀態字 th2 cdh定時器 計數器2 高8位 tl2 cch定時器 計數器2 低8位 rcap2h cbh外部輸入 p1.1 計數器 自動再裝入模式時初值暫存器高八位 rcap2l ...