程式中斷方式儲存現場為什麼要分兩步

2025-06-09 20:10:53 字數 2610 閱讀 8924

中斷響應過程中,為什麼要保護現場?如何保護?

1樓:網友

如果在中斷服務程式中要佔用一些暫存器進行運算,而在主程式中這些暫存器也是很重要的,為了二者互不干擾,所以在進入中斷服務程式時就要儲存暫存器的數值,以便在從中斷返回後繼續正常的往下執行,這種儲存暫存器數值的過程就是現場保護。

如在8086處理器中,當發生中斷時,主程式的指令位置(cs和ip)就必須進入堆疊儲存,必要時還要儲存所有通用暫存器的數值。當退出中斷後,恢復cs和ip以及其他暫存器的數值到和中斷執行前的一樣,以便程式繼續執行。

2樓:網友

為了使子程式呼叫之後順利返回主程式繼續執行,呼叫子程式也是響應中斷的乙個目的,假如不保護現場,在呼叫完子程式之後可能無法返回主程式繼續執行,輕則執行結果出錯,重則程式癱瘓,保護現場一般都是使用堆疊進行保護工作,對應的命令有push 和pop ,兩個命令一定要對應。

3樓:鄺清霽鄒葳

每次要保護斷點,保護現場需用多條指令,每條指令要有取指和履行時間。這對個高速並中斷響應,周。⑴⑵在中斷要求和中斷響應程序中,他們是如何配合工作的?

中斷/陷入處理為什麼要儲存現場和回覆現場

4樓:一劍飄紅

這多簡單乙個道理呀。

打個比方,中斷中要用到acc暫存器。

中斷前,主程式如下。

mov a, r1

subb a, #22h

jc ..上面的蔽棗橋意思應該能看明白吧。

檢測r1的數值是大於不是小於22h

那麼,問題來了。

mov a,r1 若此時a的值為20h

突然此處中斷,而且中斷中用到a,將a的值更改為23h,中斷後,程式繼續。

subb a, #22h

jc ..結果。判定巨集猛的結果剛好是反的。

而如果用了儲存和回覆現場。

不管在中斷中a怎麼變,出中斷後,a的值還會恢復成20h明白?原則上說。

中斷中用到的暫存器。

只要在主程式中也要用到。

都巖物得必須進行現場保護工作。

中斷程式如何進行現場保護

5樓:網友

你可以這樣做沒譽鍵,首先要有個觸發訊號(這個訊號你自己選擇),然後用這個訊號來觸發中斷,然後在中斷中寫你想停止或啟動枯巧虛毀的一些東東。就好了 ,不要忘了報警之類的。提醒別人。

為什麼在儲存現場和恢復現場的過程中,cpu必須關中斷

6樓:凡思多客

首先要知道中斷是指當出現需要時,cpu暫時停止當前程式的執行轉而執行處理新情況的程式和執行過程。即在程式執行過程中,系統出現了乙個必須由cpu立即處理的情況,此時,cpu暫時中止程式的執行轉而處理這個新的情況的過程就叫做中斷。

而關中斷是指在此中斷處理完成前,不處理其它中斷。儲存和恢復現場的時候如果允許其他中斷髮生,干擾正在處理中的作業系統的資訊,會導致很難恢復到原有的狀態甚至發生錯誤!因為中斷畢竟是一種強制性的,它打斷了當前程序。

7樓:神鼐傯萊稚諭

因為電腦不會儲存進度,就像遊戲裡面不儲存進度關閉後再開啟還是重新開始,而電腦在關閉後沒有別的東西替他儲存進度,所以必須關閉。

8樓:香蕉蘋果汁

因為如果不關中斷,在儲存現場和恢復現場的過程中,有中斷髮生,cpu就需要跳到新的中斷!

就是說在此中斷處理完成前,不處理其它中斷。

pic16f877中斷為什麼要進行現場保護和現場恢復

9樓:網友

給你舉個例子吧,就像你查錢一樣,查著查著,你媽找你去買點東西,如果你不記下你查到哪了,不做個記號,你回來就不知道從哪下手了,所以你的保護一下現場,回來時好繼續差錢。

中斷儲存現場之後,系統呼叫處理程式就不需要儲存現場了。這句話是錯的,為什麼?

10樓:網友

這句話是錯的,應為中斷儲存現場後,系統呼叫又要到其它地方去執行,相當於中斷被系統呼叫打斷了。其實這裡的系統呼叫就是乙個特殊的中斷,只是它是由作業系統控制的。

中斷儲存現場其實就是把當前的cpu的暫存器的值存在乙個特定的堆疊中,等中斷結束之後,再把儲存的暫存器的值賦給cpu暫存器,相當於從中斷點繼續執行。

11樓:hah黃河劍客

應該是指相當於乙個巢狀的中斷,在原來中斷上再來乙個系統呼叫中斷,比如說列印中斷時突然出現cpu呼叫乙個調低螢幕亮度的功能。

在中斷服務程式的保護和恢復現場之後需要什麼中斷

12樓:天池血崩

中斷處理程式的第一步就是保護現場。

一般是pushad

中斷處理結束後,最後一步就是恢復現場。

一般是popad

只需要兩條指令就行了,不是需要另一箇中斷。

13樓:網友

用c語言寫吧,c語言寫的話編譯器會幫你保護現場的。

14樓:網友

不是需要中斷, 需要堆疊和出棧指令來保護資料,不是用什麼中斷。。 明白了吧?

微控制器為什麼都把主程式的起始位址放在中斷向量表03h到2bh

因為中斷向量表bai的位du置是固定不變的。只要系統zhi發生中斷,程式就dao會自動 專跳到中斷向量表中。為屬了讓你的程式不干擾中斷程式,所以主程式都放在向量表的後面。當然,如果你的程式不使用任何中斷,從 0000h 開始放主程式,也不會有任何問題。再看看別人怎麼說的。微控制器為什麼都把主程式的起...

為什麼現代計算機系統中還有中斷處理程式是用組合語言編寫

沒有了,因為組合語言開發效率很低 所以現在的終端處理都已經是 c語言了 因為組合語言可以直接對硬體進行操作,而且速度更快 其實c語言在編譯過程中也是有個變成彙編的過程的。效率問題,組合語言直接對硬體操作,用組合語言編寫在生成機器語言時比一般的高階語言 如c c 等 效率都要高 還可以盡可能的減少指令...

為什麼清朝要修整明皇陵,為什麼大明皇陵儲存完整而清朝皇陵無一保全

首先,清朝是少數民族入主中原,要統治漢族就不得不收買人心,所以清兵進關就打著救民救明的旗號,安撫遺老遺少。其次,清朝不是從明朝奪的江山,明朝統治實際被農民起義推翻,清軍乘虛而入的,因此沒必要。所以,入關後定下祖訓,不動明陵一草一木,按帝王園林派遺老遺少駐守,春秋祭祀一應按規矩,並且清朝皇帝要祭祀十三...