ARM基礎(chǔ)知識學(xué)習(xí)三
在ARM體系中通常有以下3種方式控制程序的執(zhí)行流程: **在正常執(zhí)行過程中,每執(zhí)行一條ARM指令,程序計數(shù)器(PC)的值加4個字節(jié);每ARM基礎(chǔ)ARM知識ARM學(xué)習(xí)執(zhí)行一條Thumb指令,程序計數(shù)器寄存器(PC)加2個字節(jié)。整個過程是按順序執(zhí)行 。 **跳轉(zhuǎn)指令,程序可以跳轉(zhuǎn)到特定的地址標(biāo)號處執(zhí)行,或者跳轉(zhuǎn)到特定的子程序處執(zhí)行。其中,B指令用于執(zhí)行跳轉(zhuǎn)操作;BL指令在執(zhí)行跳轉(zhuǎn)操作同時,保存子程序的返回地址;BX指令在執(zhí)行跳轉(zhuǎn)操作同時,根據(jù)目標(biāo)地址為可以將程序切換到Thumb狀態(tài);BLX指令執(zhí)行3個操作,跳轉(zhuǎn)到目標(biāo)地址處執(zhí)行,保存子程序的返回地址,根據(jù)目標(biāo)地址為可以將程序切換到Thumb狀態(tài)。 **當(dāng)異常中斷發(fā)生時,系統(tǒng)執(zhí)行完當(dāng)前指令后,將跳轉(zhuǎn)到相應(yīng)的異常中斷處理程序處執(zhí)行。當(dāng)異常ARM基礎(chǔ)ARM知識ARM學(xué)習(xí)中斷處理程序執(zhí)行完成后,程序返回到發(fā)生中斷指令的下條指令處執(zhí)行。在進(jìn)入異常中斷處理程序時,要保存被中斷程序的執(zhí)行現(xiàn)場,從異常中斷處理程序退出時,要恢復(fù)被中斷程序的執(zhí)行現(xiàn)場。 |