青青av-亚洲激情一区二区-欧洲色综合-看片网址国产福利av中文字幕-成人精品毛片-亚洲黄色免费观看-国产夫妻在线观看-69av电影-久久性片-中文字幕av影片-色综合久久久久无码专区

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

1、 文檔目標

主要了解Disassembly窗口中包含的內容,和如何利用Disassembly中的內容了解程序的存儲和調用情況。


2、 問題場景

對于Disassembly窗口中具體包含的內容不了解,無法合理地應用Disassembly窗口中的一些匯編信息去優化代碼。


3、軟硬件環境

1、軟件版本:MDK 5.38a

2、電腦環境:Windows 11

3、外設硬件:無


4、解決方法

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


圖4-1


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

1)、第1處:指令運行的內存地址。C語句下面的第一個匯編指令的內存地址就是該語句執行的起始地址。

2)、第2處:表示的是對應匯編語句的機器碼

3)、第3處:對應C語句所對應的匯編語句


圖4-2

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

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

圖4-3

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

在圖4-4中,test_num是一個局部變量,num_test是全局變量。同樣都是對于變量進行加1。但是,所執行的匯編指令是不一樣的,那么對應的C語句的執行周期也會有不同,執行的時間就會不一樣。



圖4-4


【更多軟件使用問題請站內搜索或關注B站:28quan官網電子查看視頻教學】

主站蜘蛛池模板: 兴隆县| 平定县| 东阳市| 福安市| 巩留县| 崇义县| 泊头市| 开封县| 五华县| 洛宁县| 土默特右旗| 蓬溪县| 贵阳市| 贵州省| 平江县| 胶南市| 疏勒县| 张家港市| 柞水县| 乌兰县| 卓资县| 锡林郭勒盟| 东源县| 同江市| 新和县| 连城县| 云浮市| 丽江市| 富蕴县| 梨树县| 阿坝县| 咸阳市| 临汾市| 平邑县| 铜梁县| 滦南县| 拉萨市| 婺源县| 崇明县| 沈阳市| 贵德县|