微控制器裡中斷返回和子程式返回的區別是什麼

2021-04-18 23:56:18 字數 2881 閱讀 8365

1樓:敏玉英宛甲

中斷服務子程式入口位址相對某一中

斷是固定的,呼叫子程式的偏移位址是隨機的

專,基本過程差不多,返回時屬,中斷服務子程式用的是reti呼叫子程式是ret。

呼叫中斷服務子程式和呼叫子程式都會把當前偏移位址的下一位址壓棧,但呼叫子程式的返回指令ret不影響標誌位,reti從中斷程式返回,並會清除內部相應的中斷狀態暫存器。

2樓:佴青芬僕念

1.子程式呼叫是預先安排好的,程式中斷是隨機發生的;

2.呼叫子程式,是為主程式服務的,而中斷程式與主程式的程式毫無關係;

3.子程式是由呼叫指令給出目標位址,中斷是通過隱指令獲得中斷服務程式的入口位址

3樓:常春禚凰

基本沒有區別!都會在返回時恢復壓棧的pc指標並繼續執行程式。

中斷處理程式實版際上也可權以看做是乙個普通的子程式,只是它的呼叫是預先設定的位址入口,並且它的呼叫時由中斷觸發的;而子程式是我們人為地呼叫的。

但是中斷子程式的返回有時要考慮對中斷的處理(如開關中斷允許、初始化資料-----比如計數器或者定時器的初始值處理等等)。

mcs51微控制器,中斷服務程式的返回指令和子程式的返回指令有什麼區別?是多少?

4樓:

中斷服務程式的返回指令 彙編助記符 reti 機器指令 32h

子程式的返回指令 彙編助記符 ret 機器指令 22h

5樓:馬洋陌越

ret用於

一般程式的返回

reti用於中斷函式的返回

以上是一般微控制器書籍簡紹的,然而在實際應用中,我發現,在程式返回中一樣可以使用reti,而在中斷返回中卻無法使用ret,究其原因是因為reti比ret多做一件事情就是將「優先順序生效」觸發器清零

原來在8051構架中--中斷系統中含有兩個不可定址的「優先順序生效」觸發器。乙個用於指出cpu是否正在執行高優先順序的中斷服務程式,這個觸發器為1時,系統將遮蔽所有的中斷請求;另乙個則指出cpu是否正在執行低優先順序中斷服務程式,該觸發器為1時,將阻止除高優先順序以外的一切中斷請求。由此可見,若要響應同級甚至是低階中斷請求,必須使得該「優先順序生效」觸發器清零。

但該觸發器又是不可定址的,所以無法用軟體直接清零。」

微控制器中子程式和中斷服務程式有何異同?為什麼子程式返回指令ret和中斷返回指令reti不能相互替代?

微控制器呼叫中斷服務子程式和呼叫子程式的區別是什麼

6樓:軒轅幻桃仰頡

中斷服務子程bai序入口地du址相對某一中斷是固zhi定的,呼叫子程式的偏dao移專位址是隨機的,基本過程差不屬多,返回時,中斷服務子程式用的是reti

呼叫子程式是ret

呼叫中斷服務子程式和呼叫子程式都會把當前偏移位址的下一位址壓棧,但呼叫子程式的返回指令ret不影響標誌位,reti從中斷程式返回,並會清除內部相應的中斷狀態暫存器。

我說的是80c51的

微控制器呼叫中斷服務子程式和呼叫子程式的區別,盡量詳細,急…

7樓:匿名使用者

中斷程式會打斷普通程式執行,即中斷優先。

8樓:水野未知

其實區別不大。基複本過程都一樣。制呼叫子程式很簡單,也不用講了。

中斷服務子程式特殊點。一般就是檢測到中斷標誌位了,就去呼叫一下。高階點的微控制器有硬體中斷的功能。

只要中斷發生了,就自動進入中斷子程式,軟體上都不用呼叫。直接把中斷服務子程式掛到中斷向量上去就可以。還有一點區別就是返回的指令一般不一樣。

常見的比如,乙個用rti,另乙個是rtc.

9樓:走路的蔥哥

中斷服務子程式入口位址相對某一中斷是固定的,呼叫子程式的偏移位址是內隨機的,基本過程差不多容,返回時,中斷服務子程式用的是reti 呼叫子程式是ret

呼叫中斷服務子程式和呼叫子程式都會把當前偏移位址的下一位址壓棧,但呼叫子程式的返回指令ret不影響標誌位,reti從中斷程式返回,並會清除內部相應的中斷狀態暫存器。

我說的是80c51的

10樓:匿名使用者

呼叫中斷服務子程式,就是產生中斷即執行它

呼叫子程式,在程式裡面什麼時候呼叫它就執行

微控制器組合語言指令中中斷返回指令ret和reti有什麼不同?

11樓:章佳楊柳德人

ret是子程式返bai回指令,返

du回到呼叫該子程式處zhi的下一條指令執dao行,返回的位址是從專ret執行前的sp中最屬後兩個值。

reti是中斷服務程式返回指令,返回到進入中斷服務的斷點處執行,返回的位址是從reti執行前的sp中最後兩個值。

12樓:師清潤棟陣

ret是普通子程式的返回指令,而不能用reti,所以,ret不是中斷返回指令,就是子程式返回指令。

而reti是用在中斷子程式的返回指令,必須用這個,這才叫中為返回指令,而不能用ret,這就是區別。

13樓:鄲睿哲化童

reti

是中斷返bai

回指令;

ret是子程式du返回指令;

reti比ret多一步清除中斷zhi優先順序狀態位,讓dao同級回別的中斷有機會得到響應。

中斷指令答「reti」做為中斷跳出指令除了將堆疊中儲存著的位址取出,送回pc;使程式從主程式的中斷處繼續往下執行的作用外,還有將「優先順序生效」觸發器清零的功能。

14樓:羅豫柳翊

ret是子程式返回指令。

reti

是中斷服務程式返回指令。

兩者,用途不同。

微控制器c語言中斷中的return返回

嗯,可以這麼理解,發生中斷時,主函式停止執行,調至中斷 執行了。因為中斷時可以巢狀的,也有可能返回到之前被中斷的中斷程式那執行了。總之就是返回之前中斷出的 繼續執行。 牛xx的小 如果這個條件滿足則直接返回,否則執行下面的語句! 如果滿足條件則返回值,否則執行下面語句。 return返回一個值。後面...

微控制器呼叫子程式,微控制器中如何呼叫寫好的子程式

ea 1,相當於enable all interrupt。表示允許中斷,不是呼叫timer0,而是允許timer0產生中斷,並執行timer0中斷函式中的內容。ea 1 應該是總中斷開 void time0 interrupt 1 是定時器中斷 時間到進入此函式 ea總中斷復允許,只有ea 1時,c...

為什麼這個微控制器延時子程式用了PUSH和POP

請你參考 高手們喜歡這樣寫,看懂了就沒有那麼可怕了,其實就是一種儲存資料的方法。下面逐句分析,先說明一下吧 push與pop必須成對出現,否則就亂了 另外誰跟誰是一對也得弄清。delay mov r2,30h 以下3行不解釋了 acall delay0 retdelay0 push 02h 把02h...