大家知道cpu的處理速度很快,但是外部裝置的處理速度就很慢了,為了讓這兩種不同速度的機器相互配合,就產生了中斷。
比如:cpu有乙個需求需要把硬碟中的資料讀取到記憶體中,這時硬碟中的資料拷貝到記憶體是乙個比較慢的情況,如果沒有中斷,cpu需要不停的檢查讀完了沒有,但是有了中斷,cpu讀硬碟比較慢就去處理其他事情了,等它讀好了通知我,通知的這個動作就是中斷。
中斷號和中斷向量其實都是乙個數字,因為中斷號相對的都是外部裝置,0-31的中斷向量都分給了內部中斷和異常(軟中斷)
0中斷號對應的是32中斷向量
首先,裝置將中斷號傳送給中斷控制器,中斷控制器將中斷向量傳送給cpu,cpu根據中斷向量跳轉到中斷服務例程的入口位址,之前都是硬體在控制,從這裡開始軟體接管了一切
關於指標的簡單理解
首先,指標和int float一樣是一種資料型別 它也要有乙個變數,稱為指標變數,但是這個指標變數裡存放的是另乙個變數的位址 比如 int a a bookname p整體稱為指標變數,a為指標變數名,為指標運算子,bookname為另乙個變數,這個變數的型別必須和 a的型別一致,為int型別 bo...
關於異常的簡單理解
所謂異常就是程式在執行過程 現的特殊情況,任何程式都可能存在許多的未知問題,如果不解決的話,可能導致程式的中斷,造成不必要的損失。異常分為兩種 error exception。造成error異常的可能時硬碟的毀壞 記憶體條失靈等等,這些利用程式設計無法解決的異常。exception異常又分為兩種 r...
關於for迴圈的簡單理解
首先,for迴圈的格式如下 就拿氣泡排序來說吧 int arr for int i 0 i 你是否有以下疑問 迴圈變數的初始化為什麼是0?迴圈條件到底是怎麼設定的?雙重迴圈的類迴圈條件不好想?首先 這個初始化不一定是零,可以是1或者其它數,具體看情況 其次 一般初始化時0的原因是因為迴圈條件比如i ...