[問題] 中斷與function call的差別?

看板C_and_CPP作者 (19非崇貞,最多是袁紹)時間13年前 (2011/02/28 12:46), 編輯推噓9(9016)
留言25則, 12人參與, 最新討論串1/1
※ [本文轉錄自 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

02/28 13:07, , 1F
所描述的層面不同而已﹐好多函數調用底層都是要用到中斷。
02/28 13:07, 1F

02/28 13:22, , 2F
我以為最大的關鍵是「如何發生」
02/28 13:22, 2F

02/28 13:23, , 3F
function是程式碼裡的明確呼叫,interrupt可能是外部設備
02/28 13:23, 3F

02/28 13:23, , 4F
在任意時間送來的信號而發生。
02/28 13:23, 4F

02/28 13:26, , 5F
我想原po想說軟體中斷吧 XD
02/28 13:26, 5F

02/28 13:31, , 6F
喔喔,原來是int xx嗎? 我弄錯了 XDDDD
02/28 13:31, 6F

02/28 14:44, , 7F
int2e?
02/28 14:44, 7F

02/28 14:45, , 8F
傳參數用暫存器就能傳了不是嗎??
02/28 14:45, 8F

02/28 15:18, , 9F
我比較好奇,這個問題為什麼可以變成經典
02/28 15:18, 9F

02/28 15:38, , 10F
推樓上
02/28 15:38, 10F

02/28 16:17, , 11F
與C/C++關聯性甚小
02/28 16:17, 11F

02/28 18:27, , 12F
interrupt vs trp vs subloutine 研究所超愛考...
02/28 18:27, 12F

02/28 18:37, , 13F
就像《The Art of Assembly Language Programming》作者說
02/28 18:37, 13F

02/28 18:38, , 14F
的,interrupt 這個詞的定義不同人有不同說法。我以前好像
02/28 18:38, 14F

02/28 18:38, , 15F
寫過其中一種,跟課本一樣,結果老師堅持說亂寫,科科
02/28 18:38, 15F

02/28 18:39, , 16F
跟課本"不"一樣
02/28 18:39, 16F

02/28 20:08, , 17F
我覺得這個問題不好,應該改成"function call和int的相同
02/28 20:08, 17F

02/28 20:08, , 18F
點有哪些"
02/28 20:08, 18F

02/28 20:52, , 19F
這樣一講~還真的有點像!不過應該就是不同層次的東西
02/28 20:52, 19F

03/01 01:43, , 20F
C 作為Linux kernel的開發語言 完全夠格討論這個問題阿~
03/01 01:43, 20F

03/01 01:56, , 21F
int.至少分CPU exception(ex.除0),HW interrupt(設備發出
03/01 01:56, 21F

03/01 01:57, , 22F
SW int.(程式主動Call int nnh)
03/01 01:57, 22F

03/01 01:58, , 23F
interrupt 還需要做interrupt vector table的找查
03/01 01:58, 23F

03/01 02:02, , 24F
不能傳參數是指??? mov AH,4ch; int 21h; 這不算嗎?
03/01 02:02, 24F

03/01 08:31, , 25F
該不會其實只是要問有沒有 push flag 吧
03/01 08:31, 25F
文章代碼(AID): #1DQoYXkI (C_and_CPP)