看板 C_and_CPP 關於我們 聯絡資訊
※ [本文轉錄自 CSSE 看板 #1DQoTGht ] 作者: RealJustice (19非崇貞,最多是袁紹) 看板: CSSE 標題: [問題] 中斷與function call的差別? 時間: Mon Feb 28 12:40:46 2011 最近看書回想到一個經典問題 : function call 與 interrupt差在哪裡. int 不能傳參數, 不能返回參數, 這兩個是最基本的; 我記得有個關鍵差異, 是關於stack的操縱. 但現在回想不起來. 這兩者都需要把return address塞入stack, 暫存器內容塞入stack, CPU狀態 (PSR, processor status register) 塞入stack, 執行完畢再陸續pop回來. 這樣想想, 兩者幾乎是一樣的?? 有人能解答這兩者的差異嗎? -- 交談內容不是重點 只是想聽你的聲音 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.40.6 -- 為什麼要悲傷...? 他說過的話...會繼續活在你的心中,永遠也不會消失 那就是他所留給你的全部...為什麼要悲傷? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.40.6
herolee:所描述的層面不同而已﹐好多函數調用底層都是要用到中斷。 02/28 13:07
james732:我以為最大的關鍵是「如何發生」 02/28 13:22
james732:function是程式碼裡的明確呼叫,interrupt可能是外部設備 02/28 13:23
james732:在任意時間送來的信號而發生。 02/28 13:23
Bencrie:我想原po想說軟體中斷吧 XD 02/28 13:26
james732:喔喔,原來是int xx嗎? 我弄錯了 XDDDD 02/28 13:31
stupid0319:int2e? 02/28 14:44
stupid0319:傳參數用暫存器就能傳了不是嗎?? 02/28 14:45
purpose:我比較好奇,這個問題為什麼可以變成經典 02/28 15:18
TroyLee:推樓上 02/28 15:38
nowar100:與C/C++關聯性甚小 02/28 16:17
Yshuan:interrupt vs trp vs subloutine 研究所超愛考... 02/28 18:27
purpose:就像《The Art of Assembly Language Programming》作者說 02/28 18:37
purpose:的,interrupt 這個詞的定義不同人有不同說法。我以前好像 02/28 18:38
purpose:寫過其中一種,跟課本一樣,結果老師堅持說亂寫,科科 02/28 18:38
purpose:跟課本"不"一樣 02/28 18:39
cobrasgo:我覺得這個問題不好,應該改成"function call和int的相同 02/28 20:08
cobrasgo:點有哪些" 02/28 20:08
final01:這樣一講~還真的有點像!不過應該就是不同層次的東西 02/28 20:52
softwind:C 作為Linux kernel的開發語言 完全夠格討論這個問題阿~ 03/01 01:43
softwind:int.至少分CPU exception(ex.除0),HW interrupt(設備發出 03/01 01:56
softwind:SW int.(程式主動Call int nnh) 03/01 01:57
softwind:interrupt 還需要做interrupt vector table的找查 03/01 01:58
softwind:不能傳參數是指??? mov AH,4ch; int 21h; 這不算嗎? 03/01 02:02
Ross0916:該不會其實只是要問有沒有 push flag 吧 03/01 08:31