iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Arm Platforms

ARM 組合語言:30天學習心得分享系列 第 21

Day 21 例外及堆疊的處理方式

大部分的處理器都有以下四種例外的類型,優先權由高至低排列:
1.非同步不可遮罩
2.同步精確
3.同步不精確
4.非同步可遮罩

同步跟非同步,我們之前有提過,就是內部與外部異常的差別,處理一些例外狀況時,通常有下列步驟:
1.要把當前處理器狀態做儲存
2.在把函數載入程式計數器當中,程式計數器是一個中央處理器中的暫存器,用於指示電腦在其程式序列中的位置。
3.將控制移轉到處理程式的函數中並開始運作。
4.處理完畢後,恢復處理器狀態。
5.從例外或中斷狀態恢復成之前的處理狀態。

一般來說,任務是以堆疊的方式運作,只允許在有序的線性資料集合的一端進行加入資料和移除資料的運算。因而按照後進先出的原理運作。但是如果因為例外狀況產生中斷時,就得要考慮到空間是否足夠,以及也需要考量任每個任務的處理時間狀態,是否有足夠的空間與時間來安排處理這些例外狀況。

處理器是有優先順序的在處理任務,因為任務以堆疊方式在處理,所以就得要很注意後面在疊上去的任務是否會受某個中斷的狀態所影響到。

簡單來說,就是玩疊疊樂,你抽掉一塊積木,還可以拿一塊新的積木往上疊,但是底下抽掉的積木,無論如何都要保持整體的平衡不倒,差別只是在於你抽掉的積木,在中斷處理之後,還要放回原位。


上一篇
Day 20 例外和中斷機制的定義
下一篇
Day 22 中斷的運用
系列文
ARM 組合語言:30天學習心得分享30

尚未有邦友留言

立即登入留言