組合語言
Thumb Mode 是為了減少 ARM 指令所需使用的空間而存在的
ARM 指令需要 32 bit 來儲存,Thumb 則是只需要 16 bit 即可儲存。
要使用 Thumb 可以用之前講過的 組合語言共筆 10 : Branch Instructions
只不過不是 B
或 BL
而是 BX
、BLX
BX{<cond>} Rm
- 如當前為 ARM Mode 會將模式改為 Thumb Mode,並跳到 Rm 的位置
指令會將 Rm[0] bit 取出放到 CPSR 的 T bit 中,
如 Rm[0] = 1 -> T=1,跳到 Thumb Mode
如 Rm[1] = 0 -> T=0,跳到 ARM Mode
BLX{<cond>} Rm
- 如當前為 ARM Mode 會將模式改為 Thumb Mode,並跳到 Rm 的位置
並且儲存 pc 到 lr,可以將這段看成要呼叫 Thumb Mode 的函數
#### Assembler Directives 組譯器指引 #### => 通常會以 '.' 為開頭,用來指示 Assembler 執行某些操作、宣告資料轉換的型態... 其指令並不會被轉為 Machine Code ( 二進位碼 / Object Code ) 以下為一些常見的"指令"及"功能" 1. 分配記憶體位置給變數 :::warning Int.byte <int> .hword / .short <int> : 分配 16 bit 的空間
Oct 10, 20241. Branch Instructions 介紹 Branch Instructions 常被使用在 "迴圈" 和 "函數呼叫" 的功能上 主要 Instructions 有以下兩種 :::success B : 將設定的目標記憶體 address 載入到 PC ( R15 ) 中, 接下來執行此 address 所在的指令,常用在 "迴圈" BL : 會先將原 PC 儲存的 address ( 現在指令的下一條指令位址 ) 存入 lr ( r14 ), 在將目標 address 載入 PC 中,常拿來做 "函數呼叫" 時使用
Nov 27, 2023程式執行流程 將 c++ 程式編譯為可執行檔 :::success  ::: 1. Compiler : 用途 : 將程式語言編譯為組合語言
Nov 6, 2023Reference : 深度學習-物件偵測:You Only Look Once (YOLO) 影像辨識常見的IOU、AP、mAP是什麼意思? 精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么? Confusion Matrix 會顯示每個類別預測與實際的結果 ( 以下為二類別分類的 confusion matrix ( class:(1,2) )
Apr 26, 2023or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up