亚洲国产成人av在线观看,777米奇色狠狠狠888影视,一二三四在线视频观看社区,小荡货奶真大水真多紧视频

【ARM】MDK Debug模式下Disassembly窗口介紹

1、 文檔目標(biāo)

主要了解Disassembly窗口中包含的內(nèi)容,和如何利用Disassembly中的內(nèi)容了解程序的存儲(chǔ)和調(diào)用情況。


2、 問題場景

對于Disassembly窗口中具體包含的內(nèi)容不了解,無法合理地應(yīng)用Disassembly窗口中的一些匯編信息去優(yōu)化代碼。


3、軟硬件環(huán)境

1、軟件版本:MDK 5.38a

2、電腦環(huán)境:Windows 11

3、外設(shè)硬件:無


4、解決方法

1、在Disassembly窗口中,包含著程序語句以及對應(yīng)語句的所需要執(zhí)行的匯編指令。如圖4-1中可以看到test_num++這個(gè)語句對應(yīng)匯編語句。


圖4-1


2、那么在對應(yīng)的匯編指令行中,包含了三個(gè)內(nèi)容(如圖4-2):

1)、第1處:指令運(yùn)行的內(nèi)存地址。C語句下面的第一個(gè)匯編指令的內(nèi)存地址就是該語句執(zhí)行的起始地址。

2)、第2處:表示的是對應(yīng)匯編語句的機(jī)器碼

3)、第3處:對應(yīng)C語句所對應(yīng)的匯編語句


圖4-2

3、從Disassembly窗口中可以看到程序的運(yùn)行順序是怎么樣的。如圖4-3中,當(dāng)程序運(yùn)行到“SystemCoreClockUpdate();”這個(gè)語句的時(shí)候,在Disassembly窗口中就可以看到,繼續(xù)執(zhí)行程序后,會(huì)執(zhí)行該函數(shù)中的“if (SCB->CCR & SCB_CCR_DC_Msk) return; ”語句。

這樣就可以通過Disassembly窗口去查看程序運(yùn)行的邏輯是什么樣的,執(zhí)行順序是怎么樣的。

圖4-3

4、在Disassembly窗口中,我們也可以通過查看不同語句對應(yīng)的匯編語句來判斷同樣類型的語句,為什么有些語句執(zhí)行速度會(huì)更好。

在圖4-4中,test_num是一個(gè)局部變量,num_test是全局變量。同樣都是對于變量進(jìn)行加1。但是,所執(zhí)行的匯編指令是不一樣的,那么對應(yīng)的C語句的執(zhí)行周期也會(huì)有不同,執(zhí)行的時(shí)間就會(huì)不一樣。



圖4-4


【更多軟件使用問題請站內(nèi)搜索或關(guān)注B站:億道電子查看視頻教學(xué)】