從鏈結和彙編指令看微控制器

2022-02-23 08:09:42 字數 1018 閱讀 5518

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 ...